From d530224b742145b723091848cdd0634c20c73970 Mon Sep 17 00:00:00 2001
From: Jagdish Panchal
Date: Thu, 7 Mar 2013 11:20:56 +0530
Subject: [PATCH 01/81] [IMP] hr_recruitment: add new menu Resumes and Letters
below application
bzr revid: jap@tinyerp.com-20130307055056-feyvz7sw7t63zin1
---
addons/hr_recruitment/hr_recruitment_menu.xml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/addons/hr_recruitment/hr_recruitment_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml
index dbd4335d730..558816a74a0 100644
--- a/addons/hr_recruitment/hr_recruitment_menu.xml
+++ b/addons/hr_recruitment/hr_recruitment_menu.xml
@@ -65,6 +65,11 @@
name="Applications"
parent="base.menu_crm_case_job_req_main"
id="menu_crm_case_categ0_act_job" action="crm_case_categ0_act_job" sequence="1"/>
+
+
From b400a08d08f8b85e370a7f695e1dda50382778fd Mon Sep 17 00:00:00 2001
From: Jagdish Panchal
Date: Thu, 7 Mar 2013 12:52:23 +0530
Subject: [PATCH 02/81] [IMP] hr_recruitment: Add teplate for refuse and
approve application
bzr revid: jap@tinyerp.com-20130307072223-lwly1t29zirv9wmf
---
addons/hr_recruitment/hr_recruitment_data.xml | 39 +++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index a0b16f042bc..5b7b0cd008b 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -216,6 +216,45 @@
+
+
+
+ For Refuse Application
+ ${object.user.email or ''}
+ We refuse your Application
+ ${object.email_from}
+ ${object.lang}
+
+
+ Dear Madam, Dear Sir,
+
We thank you for your interest in our company and for your application.
+ Unfortunately, your profile does not match with our needs or our recruitment campaign has reached its term.
+
If you want more details, feel free to contact us by phone.
+
Kind regards,
+
+ ${object.user_id.name}
+ ]]>
+
+
+
+ Intrested in Applicastion
+ ${object.user.email or ''}
+ {object.email_from}
+ We Intrested in your Application
+ ${object.lang}
+
+
+ Dear Applicant,
+
Congrats! Your resume's got our interest!
+ I will call you as soon as possible to make a 10 minutes phone interview and plan a first meeting.
+
If we can’t reach you or if you miss our call, feel free to reach me back on the number 001 312 349 3030
+ If I do not answer, please let me a message with some schedules to call you back.
- OpenERP helps you track applicants in the recruitment
- process and follow up all operations: meetings, interviews, etc.
-
- If you setup the email gateway, applicants and their attached
- CV are created automatically when an email is sent to
- jobs@yourcompany.com. If you install the document management
- modules, all resumes are indexed automatically, so that you can
- easily search through their content.
+ OpenERP helps you track applicants in the recruitment process
+ and follow up all operations: meetings, interviews, etc.
+ Candidates and their cv's are automatically created when they
+ apply for a job. If you install the document management modules,
+ all resumes are indexed automatically, so that you can easily
+ search through their content in the recruitment menu.
From 5fb909627af5d27796f173cc323217a2c501d806 Mon Sep 17 00:00:00 2001
From: Jagdish Panchal
Date: Thu, 14 Mar 2013 11:55:06 +0530
Subject: [PATCH 04/81] [IMP]hr_recruitment: add working address_id as company
address and improve kanban view
bzr revid: jap@tinyerp.com-20130314062506-3hnk22rq8gz50sdb
---
addons/hr_recruitment/hr_recruitment.py | 7 ++++++-
addons/hr_recruitment/hr_recruitment_view.xml | 7 +++++--
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index ff1010a45d5..e212c5c5e6b 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -346,10 +346,12 @@ class hr_applicant(base_stage, osv.Model):
This override updates the document according to the email.
"""
if custom_values is None: custom_values = {}
+ val = msg.get('from').split('<')[0]
desc = html2plaintext(msg.get('body')) if msg.get('body') else ''
defaults = {
'name': msg.get('subject') or _("No Subject"),
'description': desc,
+ 'partner_name':val,
'email_from': msg.get('from'),
'email_cc': msg.get('cc'),
'user_id': False,
@@ -429,7 +431,10 @@ class hr_applicant(base_stage, osv.Model):
emp_id = hr_employee.create(cr,uid,{'name': applicant.partner_name or contact_name,
'job_id': applicant.job_id.id,
'address_home_id': address_id,
- 'department_id': applicant.department_id.id
+ 'department_id': applicant.department_id.id,
+ 'address_id': applicant.department_id.company_id.id,
+ 'work_email': applicant.department_id.company_id.email,
+ 'work_phone': applicant.department_id.company_id.phone,
})
self.write(cr, uid, [applicant.id], {'emp_id': emp_id}, context=context)
self.case_close(cr, uid, [applicant.id], context)
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index b6a0bdd4ccf..6c5040045cf 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -254,15 +254,17 @@
From bedac40d7e9f24345da9bb8015d09a22ce549cad Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Thu, 14 Mar 2013 14:12:21 +0530
Subject: [PATCH 05/81] [IMP]Changed the address_id ,work email and phone
bzr revid: dhr@tinyerp.com-20130314084221-4g6b8x3elwm5oq2j
---
addons/hr_recruitment/hr_recruitment.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index e212c5c5e6b..aedd88c1a15 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -431,10 +431,10 @@ class hr_applicant(base_stage, osv.Model):
emp_id = hr_employee.create(cr,uid,{'name': applicant.partner_name or contact_name,
'job_id': applicant.job_id.id,
'address_home_id': address_id,
- 'department_id': applicant.department_id.id,
- 'address_id': applicant.department_id.company_id.id,
- 'work_email': applicant.department_id.company_id.email,
- 'work_phone': applicant.department_id.company_id.phone,
+ 'department_id': applicant.department_id.id or False,
+ 'address_id': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.id or False,
+ 'work_email': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.email or False,
+ 'work_phone': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.phone or False,
})
self.write(cr, uid, [applicant.id], {'emp_id': emp_id}, context=context)
self.case_close(cr, uid, [applicant.id], context)
From 1b8027dc9622f61fe2e30c095b708af530816253 Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Thu, 14 Mar 2013 14:42:30 +0530
Subject: [PATCH 06/81] [IMP]Showing attachment in the kanban as per the image
in task
bzr revid: dhr@tinyerp.com-20130314091230-5nzifhvt06rkqyms
---
addons/hr_recruitment/hr_recruitment.py | 12 ++++++++++++
addons/hr_recruitment/hr_recruitment_view.xml | 4 ++++
2 files changed, 16 insertions(+)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index aedd88c1a15..44f5e42a4e4 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -184,6 +184,16 @@ class hr_applicant(base_stage, osv.Model):
duration = float(ans.days)
res[issue.id][field] = abs(float(duration))
return res
+
+ def _compute_attachments(self, cr, uid, ids, fields, args, context=None):
+ res = {}
+ attachment_pool = self.pool.get('ir.attachment')
+ for issue in self.browse(cr, uid, ids, context=context):
+ res[issue.id] = 0
+ attach = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',issue.id)])
+ if attach:
+ res[issue.id] = len(attach)
+ return res
_columns = {
'name': fields.char('Subject', size=128, required=True),
@@ -235,6 +245,8 @@ class hr_applicant(base_stage, osv.Model):
multi='day_close', type="float", store=True),
'color': fields.integer('Color Index'),
'emp_id': fields.many2one('hr.employee', 'employee'),
+ 'attachments': fields.function(_compute_attachments, string='Attachments', \
+ type="integer"),
'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True),
}
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index ccdaf2d7ed1..89843a3b801 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -290,6 +290,10 @@
From dbeb2cade0c632499bf6b886285b03267bd0b458 Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Thu, 14 Mar 2013 14:51:10 +0530
Subject: [PATCH 07/81] [IMP]Adding manager of the applicant as default to
invitation on scheduling a meeting
bzr revid: dhr@tinyerp.com-20130314092110-jkaqhmsrzsjd889u
---
addons/hr_recruitment/hr_recruitment.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 44f5e42a4e4..3c074b4e1ad 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -323,10 +323,15 @@ class hr_applicant(base_stage, osv.Model):
@return: Dictionary value for created Meeting view
"""
applicant = self.browse(cr, uid, ids[0], context)
+ applicant_ids = []
+ if applicant.partner_id:
+ applicant_ids.append(applicant.partner_id.id)
+ if applicant.department_id and applicant.department_id.manager_id and applicant.department_id.manager_id.address_id:
+ applicant_ids.append(applicant.department_id.manager_id.address_id.id)
category = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'categ_meet_interview', context)
res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'base_calendar', 'action_crm_meeting', context)
res['context'] = {
- 'default_partner_ids': applicant.partner_id and [applicant.partner_id.id] or False,
+ 'default_partner_ids': applicant_ids or False,
'default_user_id': uid,
'default_name': applicant.name,
'default_categ_ids': category and [category.id] or False,
From b0623b619dd4c527770aeb8fd94efdbb1d0e617d Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Thu, 14 Mar 2013 16:11:57 +0530
Subject: [PATCH 08/81] [IMP]Improved the action for menu Resumes and Letters
to show hr applicant's attachment
bzr revid: dhr@tinyerp.com-20130314104157-n9x2jt1ve1jhxque
---
addons/hr_recruitment/__openerp__.py | 1 +
addons/hr_recruitment/hr_recruitment_menu.xml | 15 ++++++++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py
index e83c546af04..d33bfed6a4d 100644
--- a/addons/hr_recruitment/__openerp__.py
+++ b/addons/hr_recruitment/__openerp__.py
@@ -42,6 +42,7 @@ You can define the different phases of interviews and easily rate the applicant
'base_status',
'decimal_precision',
'hr',
+ 'document',
'survey',
'base_calendar',
'fetchmail',
diff --git a/addons/hr_recruitment/hr_recruitment_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml
index e86dbce6893..fb10a4f20a0 100644
--- a/addons/hr_recruitment/hr_recruitment_menu.xml
+++ b/addons/hr_recruitment/hr_recruitment_menu.xml
@@ -23,6 +23,19 @@
+
+ Resumes and Letters
+ ir.attachment
+ tree,form
+
+ [('res_model','=','hr.applicant')]
+
+
+ Search through resumes and motivation letters.
+
+
+
+
kanban
@@ -67,7 +80,7 @@
+ id="menu_crm_case_categ0_act_job02" action="hr_applicant_resumes" sequence="3"/>
From 09df39578dbdab58dec156a3c171b59a731ab849 Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Thu, 14 Mar 2013 17:01:16 +0530
Subject: [PATCH 09/81] [IMP]Search within the content of the resume in the
search view of an applicant,
bzr revid: dhr@tinyerp.com-20130314113116-lh4v21bm0mt4d9lc
---
addons/hr_recruitment/hr_recruitment.py | 13 +++++++++++++
addons/hr_recruitment/hr_recruitment_view.xml | 2 ++
2 files changed, 15 insertions(+)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 3c074b4e1ad..c27f97c27df 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -195,6 +195,17 @@ class hr_applicant(base_stage, osv.Model):
res[issue.id] = len(attach)
return res
+ def _get_index_content(self, cr, uid, ids, fields, args, context=None):
+ res = {}
+ attachment_pool = self.pool.get('ir.attachment')
+ for issue in self.browse(cr, uid, ids, context=context):
+ res[issue.id] = 0
+ attach_id = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',issue.id)])
+ if attach_id:
+ for attach in attachment_pool.browse(cr, uid, attach_id, context):
+ res[issue.id] = attach.index_content
+ return res
+
_columns = {
'name': fields.char('Subject', size=128, required=True),
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."),
@@ -247,6 +258,8 @@ class hr_applicant(base_stage, osv.Model):
'emp_id': fields.many2one('hr.employee', 'employee'),
'attachments': fields.function(_compute_attachments, string='Attachments', \
type="integer"),
+ 'index_content': fields.function(_get_index_content, string='Index Content', \
+ type="char",store=True),
'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True),
}
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 89843a3b801..40c2e7112f2 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -58,6 +58,7 @@
+
@@ -185,6 +186,7 @@
+
From bb21ba4334ace1a8fbb3295fb483e98275fd6e4f Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Fri, 15 Mar 2013 10:52:37 +0530
Subject: [PATCH 10/81] [IMP]Added demo data for need action(unread email)
bzr revid: dhr@tinyerp.com-20130315052237-wy854vqr64cdzh9z
---
addons/hr_recruitment/hr_recruitment_demo.xml | 25 ++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/addons/hr_recruitment/hr_recruitment_demo.xml b/addons/hr_recruitment/hr_recruitment_demo.xml
index c15e0deb188..fb54eaab1e3 100644
--- a/addons/hr_recruitment/hr_recruitment_demo.xml
+++ b/addons/hr_recruitment/hr_recruitment_demo.xml
@@ -125,5 +125,28 @@
+
+
+ hr.applicant
+
+ Please do refer to this application for sure.
+ comment
+
+
+
+ Regarding reference
+ hr.applicant
+
+ Hello!
+ I will surely refer to this application as it is by your reference and
+ will try to conduct an interview within a very short time
+ Thanks,]]>
+ comment
+
+
+
+
-
\ No newline at end of file
+
From e3e177d5f02cfabcd93af95f1edcf1f59d5e9c32 Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Fri, 15 Mar 2013 17:56:06 +0530
Subject: [PATCH 11/81] [IMP]Changed the typo and string in templates
bzr revid: dhr@tinyerp.com-20130315122606-v6arcu6dr978zk8w
---
addons/hr_recruitment/hr_recruitment_data.xml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index 2a444bcb503..577e77592c6 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -219,9 +219,9 @@
- For Refuse Application
+ Refuse Application${object.user.email or ''}
- We refuse your Application
+ We refuse your application${object.email_from}${object.lang}
@@ -237,10 +237,10 @@
- Intrested in Applicastion
+ Interested in Application${object.user.email or ''}{object.email_from}
- We Intrested in your Application
+ We are interested in your application${object.lang}
From 2ae7717edbb5ff9ec78a984da3623be798461e78 Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Fri, 15 Mar 2013 18:07:24 +0530
Subject: [PATCH 12/81] [IMP]Changed the partner_id for manager
bzr revid: dhr@tinyerp.com-20130315123724-hv05rkub1agooz6h
---
addons/hr_recruitment/hr_recruitment.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index c27f97c27df..38ae03fb2bf 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -339,8 +339,8 @@ class hr_applicant(base_stage, osv.Model):
applicant_ids = []
if applicant.partner_id:
applicant_ids.append(applicant.partner_id.id)
- if applicant.department_id and applicant.department_id.manager_id and applicant.department_id.manager_id.address_id:
- applicant_ids.append(applicant.department_id.manager_id.address_id.id)
+ if applicant.department_id and applicant.department_id.manager_id and applicant.department_id.manager_id.user_id and applicant.department_id.manager_id.user_id.partner_id:
+ applicant_ids.append(applicant.department_id.manager_id.user_id.partner_id.id)
category = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'categ_meet_interview', context)
res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'base_calendar', 'action_crm_meeting', context)
res['context'] = {
From 0306b355d0e6460712d7b5ccba319ae64e892c14 Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Mon, 18 Mar 2013 11:50:44 +0530
Subject: [PATCH 13/81] [IMP]Improved the demo data for template to send mail
and now mails are sent when Refuse application or Contract signed
bzr revid: dhr@tinyerp.com-20130318062044-0qmp56vibva2fcra
---
addons/hr_recruitment/hr_recruitment.py | 23 ++++++++++++++++++-
addons/hr_recruitment/hr_recruitment_data.xml | 6 ++---
2 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 38ae03fb2bf..0710b3e22bd 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -442,6 +442,11 @@ class hr_applicant(base_stage, osv.Model):
def case_close(self, cr, uid, ids, context=None):
res = super(hr_applicant, self).case_close(cr, uid, ids, context)
+ try:
+ template = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_approve_applicant')
+ except ValueError:
+ pass
+ self._get_mail_template(cr, uid, ids, template, context)
return res
def case_close_with_emp(self, cr, uid, ids, context=None):
@@ -483,8 +488,24 @@ class hr_applicant(base_stage, osv.Model):
"""
res = super(hr_applicant, self).case_cancel(cr, uid, ids, context)
self.write(cr, uid, ids, {'probability': 0.0})
+ template = False
+ try:
+ template = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_refuse_applicant')
+ except ValueError:
+ pass
+ self._get_mail_template(cr, uid, ids, template, context)
return res
-
+
+ def _get_mail_template(self, cr, uid, ids, template, context):
+ mail_obj = self.pool.get('mail.mail')
+ assert template._name == 'email.template'
+ for applications in self.browse(cr, uid, ids, context):
+ if applications.email_from:
+ mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, applications.id, True, context=context)
+ mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context)
+ if mail_state and mail_state['state'] == 'exception':
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _("Cannot send email: no outgoing email server configured.\nYou can configure it under %(menu:base_setup.menu_general_configuration)s."), context)
+
def case_pending(self, cr, uid, ids, context=None):
"""Marks case as pending"""
res = super(hr_applicant, self).case_pending(cr, uid, ids, context)
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index 577e77592c6..50e19bb7d69 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -220,7 +220,7 @@
Refuse Application
- ${object.user.email or ''}
+ ${user.email or ''}We refuse your application${object.email_from}${object.lang}
@@ -238,8 +238,8 @@
Interested in Application
- ${object.user.email or ''}
- {object.email_from}
+ ${user.email or ''}
+ ${object.email_from}We are interested in your application${object.lang}
From bdde088d085b71f59f57c246da9aab40882bb6df Mon Sep 17 00:00:00 2001
From: "Ravi Gohil (OpenERP)"
Date: Mon, 18 Mar 2013 19:03:38 +0530
Subject: [PATCH 14/81] [FIX] re-importing the translation from a file(.csv,
.xml) updates the terms in ir_translation table but does not update it in
cache memory, need a server restart to take those change effect in interface.
(Maintenance Case: 587178)
bzr revid: rgo@tinyerp.com-20130318133338-djkx3ykbkitvbzeb
---
openerp/tools/translate.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/openerp/tools/translate.py b/openerp/tools/translate.py
index f1efbc17f2d..d4ce543ed42 100644
--- a/openerp/tools/translate.py
+++ b/openerp/tools/translate.py
@@ -1000,6 +1000,7 @@ def trans_load_data(cr, fileobj, fileformat, lang, lang_name=None, verbose=True,
irt_cursor.push(dic)
irt_cursor.finish()
+ trans_obj.clear_caches()
if verbose:
_logger.info("translation file loaded succesfully")
except IOError:
From 4ed53ad39e92f4f7d09e974e0f86ac9b2402a48b Mon Sep 17 00:00:00 2001
From: "Somesh Khare (OpenERP)"
Date: Mon, 22 Apr 2013 18:19:43 +0530
Subject: [PATCH 15/81] [FIX]hr_holidays, hr_timesheet: XMLSyntaxError Error
occurred when company name have ampersand '&' sign (Case: Ref 591630)
bzr revid: skh@openerp.com-20130422124943-04zhbhbj9snvikqv
---
addons/hr_holidays/report/holidays_summary_report.py | 2 +-
addons/hr_timesheet/report/users_timesheet.py | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/addons/hr_holidays/report/holidays_summary_report.py b/addons/hr_holidays/report/holidays_summary_report.py
index f60d7a3ee1c..f5bc6271b90 100644
--- a/addons/hr_holidays/report/holidays_summary_report.py
+++ b/addons/hr_holidays/report/holidays_summary_report.py
@@ -96,7 +96,7 @@ class report_custom(report_rml):
res=cr.fetchone()[0]
date_xml=[]
date_today=time.strftime('%Y-%m-%d %H:%M:%S')
- date_xml +=['' % (res,date_today)]
+ date_xml +=['' % (to_xml(res),date_today)]
cr.execute("SELECT id, name, color_name FROM hr_holidays_status ORDER BY id")
legend=cr.fetchall()
diff --git a/addons/hr_timesheet/report/users_timesheet.py b/addons/hr_timesheet/report/users_timesheet.py
index 4827994f2cd..a7bb81cb81f 100644
--- a/addons/hr_timesheet/report/users_timesheet.py
+++ b/addons/hr_timesheet/report/users_timesheet.py
@@ -27,6 +27,7 @@ from openerp import pooler
from openerp.tools.translate import _
from openerp.report import report_sxw
from openerp.tools import ustr
+from openerp.tools import to_xml
def lengthmonth(year, month):
@@ -104,7 +105,7 @@ class report_custom(report_rml):
%s%s
- ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name)
+ ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),to_xml(pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name))
xml='''
From 56afde0c844890936caaa3dc17db87b5f360779d Mon Sep 17 00:00:00 2001
From: "Pinakin Nayi (OpenERP)"
Date: Mon, 29 Apr 2013 11:32:31 +0530
Subject: [PATCH 16/81] [FIX]project: if there is no any project manager and
try to schedule task its give traceback
bzr revid: pna@tinyerp.com-20130429060231-epygcrs2073f23ny
---
addons/project/project.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/addons/project/project.py b/addons/project/project.py
index a5e540c8be7..5b8ae2c2044 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -477,12 +477,15 @@ def Project():
def Project_%d():
start = \'%s\'
working_days = %s
- resource = %s
""" % (
project.id,
- project.date_start or time.strftime('%Y-%m-%d'), working_days,
- '|'.join(['User_'+str(x) for x in puids])
- )
+ project.date_start or time.strftime('%Y-%m-%d'), working_days
+ )
+ resource = '|'.join(['User_'+str(x) for x in puids])
+ if resource :
+ result+= """
+ resource = %s
+""" % ( resource, )
vacation = calendar_id and tuple(resource_pool.compute_vacation(cr, uid, calendar_id, context=context)) or False
if vacation:
result+= """
From 477c5a064b3037fc384671aa3a55e302df9cb217 Mon Sep 17 00:00:00 2001
From: "Ravi Gohil (OpenERP)"
Date: Tue, 7 May 2013 16:41:02 +0530
Subject: [PATCH 17/81] [FIX] document: 'user_id' field must be declared as m2o
rather than simple char field as a related field refering it in the same
module. (Maintenance Case: 592256)
lp bug: https://launchpad.net/bugs/1175984 fixed
bzr revid: rgo@tinyerp.com-20130507111102-iq6jxwy1fy02727q
---
addons/document/report/document_report.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/document/report/document_report.py b/addons/document/report/document_report.py
index c9df78e4272..a4133f46387 100644
--- a/addons/document/report/document_report.py
+++ b/addons/document/report/document_report.py
@@ -31,7 +31,7 @@ class report_document_user(osv.osv):
'name': fields.char('Year', size=64,readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
- 'user_id':fields.integer('Owner', readonly=True),
+ 'user_id': fields.many2one('res.users', 'Owner', readonly=True),
'user': fields.related('user_id', 'name', type='char', size=64, readonly=True),
'directory': fields.char('Directory',size=64,readonly=True),
'datas_fname': fields.char('File Name',size=64,readonly=True),
From 0c570e89934296cf5ca7f91c0581d78f7674a2b8 Mon Sep 17 00:00:00 2001
From: "Pinakin Nayi (OpenERP)"
Date: Wed, 8 May 2013 10:26:21 +0530
Subject: [PATCH 18/81] [IMP]purchase : in search view warehouse filter display
two times
bzr revid: pna@tinyerp.com-20130508045621-00qnigii90n129y0
---
addons/purchase/report/purchase_report_view.xml | 1 -
1 file changed, 1 deletion(-)
diff --git a/addons/purchase/report/purchase_report_view.xml b/addons/purchase/report/purchase_report_view.xml
index 909663f43bb..9acb733e882 100644
--- a/addons/purchase/report/purchase_report_view.xml
+++ b/addons/purchase/report/purchase_report_view.xml
@@ -74,7 +74,6 @@
-
From c46526a9dc2d376c016a51390779257ac45912c2 Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Fri, 7 Jun 2013 18:46:46 +0530
Subject: [PATCH 19/81] Improve Code.
bzr revid: jir@tinyerp.com-20130607131646-kkeo1nuue6klbikj
---
addons/document/document_view.xml | 3 +++
addons/hr_recruitment/hr_recruitment.py | 18 ++++++++++++++++++
addons/hr_recruitment/hr_recruitment_view.xml | 10 ++++++----
addons/hr_recruitment/res_config.py | 4 ----
addons/hr_recruitment/res_config_view.xml | 6 ------
.../security/hr_recruitment_security.xml | 1 -
6 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml
index c3bd5ad3f56..8c60e232dbf 100644
--- a/addons/document/document_view.xml
+++ b/addons/document/document_view.xml
@@ -199,6 +199,9 @@
+
+
+
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 161cf71d513..39064304300 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -185,6 +185,24 @@ class hr_applicant(base_stage, osv.Model):
res[issue.id][field] = abs(float(duration))
return res
+
+ def attachment_tree_view(self, cr, uid, ids, context):
+ domain = ['&', ('res_model', '=', 'hr.applicant'), ('res_id', 'in', ids)]
+ res_id = ids and ids[0] or False
+ return {
+ 'name': _('Attachments'),
+ 'domain': domain,
+ 'res_model': 'ir.attachment',
+ 'type': 'ir.actions.act_window',
+ 'view_id': False,
+ 'view_mode': 'tree,form',
+ 'view_type': 'form',
+ 'limit': 80,
+ 'context': "{'default_res_model': '%s','default_res_id': %d}" % (self._name, res_id)
+ }
+
+
+
def _compute_attachments(self, cr, uid, ids, fields, args, context=None):
res = {}
attachment_pool = self.pool.get('ir.attachment')
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 542620ad14e..0cc6aff1496 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -89,6 +89,7 @@
+
@@ -241,6 +242,7 @@
+
@@ -293,10 +295,10 @@
diff --git a/addons/hr_recruitment/res_config.py b/addons/hr_recruitment/res_config.py
index ac53bf74ff3..161042a99f2 100644
--- a/addons/hr_recruitment/res_config.py
+++ b/addons/hr_recruitment/res_config.py
@@ -29,9 +29,5 @@ class hr_applicant_settings(osv.osv_memory):
'module_document_ftp': fields.boolean('Allow the automatic indexation of resumes',
help="""Manage your CV's and motivation letter related to all applicants.
This installs the module document_ftp. This will install the knowledge management module in order to allow you to search using specific keywords through the content of all documents (PDF, .DOCx...)"""),
- 'fetchmail_applicants': fields.boolean('Create applicants from an incoming email account',
- fetchmail_model='hr.applicant', fetchmail_name='Incoming HR Applications',
- help ="""Allow applicants to send their job application to an email address (jobs@mycompany.com),
- and create automatically application documents in the system."""),
}
diff --git a/addons/hr_recruitment/res_config_view.xml b/addons/hr_recruitment/res_config_view.xml
index 1c692099f60..e341e39c0a4 100644
--- a/addons/hr_recruitment/res_config_view.xml
+++ b/addons/hr_recruitment/res_config_view.xml
@@ -14,12 +14,6 @@
-
-
-
-
-
diff --git a/addons/hr_recruitment/security/hr_recruitment_security.xml b/addons/hr_recruitment/security/hr_recruitment_security.xml
index 4fccca1a791..14b448db2ae 100644
--- a/addons/hr_recruitment/security/hr_recruitment_security.xml
+++ b/addons/hr_recruitment/security/hr_recruitment_security.xml
@@ -9,6 +9,5 @@
['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
-
From 0653e597f67859930be9075698e2a716bfbddc28 Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Tue, 11 Jun 2013 10:48:01 +0530
Subject: [PATCH 20/81] Changes Code.
bzr revid: jir@tinyerp.com-20130611051801-3eycn095439p5od2
---
addons/document/document.py | 2 +-
addons/hr_recruitment/__openerp__.py | 1 -
addons/hr_recruitment/hr_recruitment.py | 13 -------------
addons/hr_recruitment/hr_recruitment_menu.xml | 16 ----------------
addons/hr_recruitment/hr_recruitment_view.xml | 3 +--
addons/hr_recruitment/res_config.py | 1 +
6 files changed, 3 insertions(+), 33 deletions(-)
diff --git a/addons/document/document.py b/addons/document/document.py
index 54f12e204fe..70cc676b18b 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -1027,7 +1027,7 @@ class node_dir(node_database):
print "Cannot eval %s." % dfld.expr
print e
pass
-
+
def __eq__(self, other):
if type(self) != type(other):
return False
diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py
index d33bfed6a4d..e83c546af04 100644
--- a/addons/hr_recruitment/__openerp__.py
+++ b/addons/hr_recruitment/__openerp__.py
@@ -42,7 +42,6 @@ You can define the different phases of interviews and easily rate the applicant
'base_status',
'decimal_precision',
'hr',
- 'document',
'survey',
'base_calendar',
'fetchmail',
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 39064304300..ead8264f663 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -213,17 +213,6 @@ class hr_applicant(base_stage, osv.Model):
res[issue.id] = len(attach)
return res
- def _get_index_content(self, cr, uid, ids, fields, args, context=None):
- res = {}
- attachment_pool = self.pool.get('ir.attachment')
- for issue in self.browse(cr, uid, ids, context=context):
- res[issue.id] = 0
- attach_id = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',issue.id)])
- if attach_id:
- for attach in attachment_pool.browse(cr, uid, attach_id, context):
- res[issue.id] = attach.index_content
- return res
-
_columns = {
'name': fields.char('Subject', size=128, required=True),
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."),
@@ -276,8 +265,6 @@ class hr_applicant(base_stage, osv.Model):
'emp_id': fields.many2one('hr.employee', 'employee'),
'attachments': fields.function(_compute_attachments, string='Attachments', \
type="integer"),
- 'index_content': fields.function(_get_index_content, string='Index Content', \
- type="char",store=True),
'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True),
}
diff --git a/addons/hr_recruitment/hr_recruitment_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml
index fb10a4f20a0..ac326f7b74c 100644
--- a/addons/hr_recruitment/hr_recruitment_menu.xml
+++ b/addons/hr_recruitment/hr_recruitment_menu.xml
@@ -23,18 +23,6 @@
-
- Resumes and Letters
- ir.attachment
- tree,form
-
- [('res_model','=','hr.applicant')]
-
-
- Search through resumes and motivation letters.
-
-
-
@@ -77,10 +65,6 @@
parent="base.menu_crm_case_job_req_main"
id="menu_crm_case_categ0_act_job" action="crm_case_categ0_act_job" sequence="1"/>
-
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 0cc6aff1496..3b2d6766730 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -58,7 +58,6 @@
-
@@ -188,7 +187,7 @@
-
+
diff --git a/addons/hr_recruitment/res_config.py b/addons/hr_recruitment/res_config.py
index 161042a99f2..ba86722a6bc 100644
--- a/addons/hr_recruitment/res_config.py
+++ b/addons/hr_recruitment/res_config.py
@@ -29,5 +29,6 @@ class hr_applicant_settings(osv.osv_memory):
'module_document_ftp': fields.boolean('Allow the automatic indexation of resumes',
help="""Manage your CV's and motivation letter related to all applicants.
This installs the module document_ftp. This will install the knowledge management module in order to allow you to search using specific keywords through the content of all documents (PDF, .DOCx...)"""),
+
}
From 8091ee95b746db97acd3a3382c672a81a4ddb663 Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Tue, 11 Jun 2013 10:58:30 +0530
Subject: [PATCH 21/81] Add Module.
bzr revid: jir@tinyerp.com-20130611052830-j9svn7ei0cn10l85
---
addons/hr_applicant_document/__init__.py | 24 +++++++++
addons/hr_applicant_document/__openerp__.py | 47 +++++++++++++++++
.../hr_applicant_document.py | 48 +++++++++++++++++
.../hr_applicant_document_view.xml | 51 +++++++++++++++++++
4 files changed, 170 insertions(+)
create mode 100644 addons/hr_applicant_document/__init__.py
create mode 100644 addons/hr_applicant_document/__openerp__.py
create mode 100644 addons/hr_applicant_document/hr_applicant_document.py
create mode 100644 addons/hr_applicant_document/hr_applicant_document_view.xml
diff --git a/addons/hr_applicant_document/__init__.py b/addons/hr_applicant_document/__init__.py
new file mode 100644
index 00000000000..d3188eef79a
--- /dev/null
+++ b/addons/hr_applicant_document/__init__.py
@@ -0,0 +1,24 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
+# $Id$
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import hr_applicant_document
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_applicant_document/__openerp__.py b/addons/hr_applicant_document/__openerp__.py
new file mode 100644
index 00000000000..537856c54a0
--- /dev/null
+++ b/addons/hr_applicant_document/__openerp__.py
@@ -0,0 +1,47 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
+# $Id$
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ 'name': 'Applicant Resumes and Letters',
+ 'version': '1.0',
+ 'category': 'Human Resources',
+ 'sequence': 25,
+ 'summary': 'Applicant Resumes and Letters',
+ 'description': """
+Manage Applicant Resumes and letters
+====================================
+This application allows you to keep resumes and letters with applicants.
+
+""",
+ 'author': 'OpenERP SA',
+ 'website': 'http://www.openerp.com',
+ 'images': ['images/hr_recruitment_analysis.jpeg','images/hr_recruitment_applicants.jpeg'],
+ 'depends': ['hr_recruitment','document'],
+ 'data': ['hr_applicant_document_view.xml'],
+ 'demo': [],
+ 'test': [],
+ 'installable': True,
+ 'auto_install': True,
+ 'application': True,
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_applicant_document/hr_applicant_document.py b/addons/hr_applicant_document/hr_applicant_document.py
new file mode 100644
index 00000000000..5675d87d473
--- /dev/null
+++ b/addons/hr_applicant_document/hr_applicant_document.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import time
+from openerp import tools
+from openerp.addons.base_status.base_stage import base_stage
+from datetime import datetime
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
+from openerp.tools import html2plaintext
+class applicant_document(osv.osv):
+ _name = 'hr.applicant'
+ _inherit = 'hr.applicant'
+ def _get_index_content(self, cr, uid, ids, fields, args, context=None):
+ res = {}
+ attachment_pool = self.pool.get('ir.attachment')
+ for issue in self.browse(cr, uid, ids, context=context):
+ res[issue.id] = 0
+ attach_id = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',issue.id)])
+ if attach_id:
+ for attach in attachment_pool.browse(cr, uid, attach_id, context):
+ res[issue.id] = attach.index_content
+ return res
+
+ _columns = {
+ 'index_content': fields.function(_get_index_content, string='Index Content', \
+ type="char",store=True),
+ }
+applicant_document()
+
diff --git a/addons/hr_applicant_document/hr_applicant_document_view.xml b/addons/hr_applicant_document/hr_applicant_document_view.xml
new file mode 100644
index 00000000000..c590c5c89fe
--- /dev/null
+++ b/addons/hr_applicant_document/hr_applicant_document_view.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+ Applicants
+ hr.applicant
+
+
+
+
+
+
+
+
+
+ Jobs - Recruitment Search
+ hr.applicant
+
+
+
+
+
+
+
+
+
+
+ Resumes and Letters
+ ir.attachment
+ tree,form
+
+ [('res_model','=','hr.applicant')]
+
+
+ Search through resumes and motivation letters.
+
+
+
+
+
+
+
+
+
+
+
+
From 959445fa6963e00e4901d5aa5f1afa06c1cb31d4 Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Tue, 11 Jun 2013 15:10:05 +0530
Subject: [PATCH 22/81] Code Improve.
bzr revid: jir@tinyerp.com-20130611094005-tu13lpz6u837va0s
---
addons/document/document_view.xml | 3 --
.../hr_applicant_document.py | 20 +++++++++---
.../hr_applicant_document_view.xml | 32 +++++++------------
3 files changed, 26 insertions(+), 29 deletions(-)
diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml
index 8c60e232dbf..c3bd5ad3f56 100644
--- a/addons/document/document_view.xml
+++ b/addons/document/document_view.xml
@@ -199,9 +199,6 @@
-
-
-
diff --git a/addons/hr_applicant_document/hr_applicant_document.py b/addons/hr_applicant_document/hr_applicant_document.py
index 5675d87d473..1b5144b7566 100644
--- a/addons/hr_applicant_document/hr_applicant_document.py
+++ b/addons/hr_applicant_document/hr_applicant_document.py
@@ -29,20 +29,30 @@ from openerp.tools import html2plaintext
class applicant_document(osv.osv):
_name = 'hr.applicant'
_inherit = 'hr.applicant'
+
def _get_index_content(self, cr, uid, ids, fields, args, context=None):
res = {}
attachment_pool = self.pool.get('ir.attachment')
- for issue in self.browse(cr, uid, ids, context=context):
- res[issue.id] = 0
- attach_id = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',issue.id)])
+ for applicant in self.browse(cr, uid, ids, context=context):
+ res[applicant.id] = 0
+ attach_id = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)])
if attach_id:
for attach in attachment_pool.browse(cr, uid, attach_id, context):
- res[issue.id] = attach.index_content
+ res[applicant.id] = attach.index_content
return res
+ def _content_search(self, cursor, user, obj, name, args, context=None):
+ record_ids = []
+ attachment_pool = self.pool.get('ir.attachment')
+ args += [('res_model','=','hr.applicant')]
+ attach_ids = attachment_pool.search(cursor, user, args)
+ for attach in attachment_pool.browse(cursor, user, attach_ids):
+ record_ids.append(attach.res_id)
+ return [('id', 'in', record_ids)]
+
_columns = {
'index_content': fields.function(_get_index_content, string='Index Content', \
- type="char",store=True),
+ fnct_search=_content_search,type="text"),
}
applicant_document()
diff --git a/addons/hr_applicant_document/hr_applicant_document_view.xml b/addons/hr_applicant_document/hr_applicant_document_view.xml
index c590c5c89fe..ed373831f85 100644
--- a/addons/hr_applicant_document/hr_applicant_document_view.xml
+++ b/addons/hr_applicant_document/hr_applicant_document_view.xml
@@ -2,27 +2,17 @@
-
- Applicants
- hr.applicant
-
-
-
-
-
-
-
-
-
- Jobs - Recruitment Search
- hr.applicant
-
-
-
-
-
-
-
+
+
+ Jobs - Recruitment Search
+ hr.applicant
+
+
+
+
+
+
+
From 9bc546a6a00021693456607d7f3756ad5a9f1956 Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Tue, 11 Jun 2013 16:19:54 +0530
Subject: [PATCH 23/81] Code Improve.
bzr revid: jir@tinyerp.com-20130611104954-k7uta5b9003xx28e
---
addons/hr_applicant_document/hr_applicant_document.py | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/addons/hr_applicant_document/hr_applicant_document.py b/addons/hr_applicant_document/hr_applicant_document.py
index 1b5144b7566..f53688a7014 100644
--- a/addons/hr_applicant_document/hr_applicant_document.py
+++ b/addons/hr_applicant_document/hr_applicant_document.py
@@ -21,11 +21,10 @@
import time
from openerp import tools
-from openerp.addons.base_status.base_stage import base_stage
from datetime import datetime
from openerp.osv import fields, osv
from openerp.tools.translate import _
-from openerp.tools import html2plaintext
+
class applicant_document(osv.osv):
_name = 'hr.applicant'
_inherit = 'hr.applicant'
@@ -54,5 +53,4 @@ class applicant_document(osv.osv):
'index_content': fields.function(_get_index_content, string='Index Content', \
fnct_search=_content_search,type="text"),
}
-applicant_document()
From cd7fc8ccef913d32393ad13f5b149a5a1925b674 Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Tue, 11 Jun 2013 16:30:08 +0530
Subject: [PATCH 24/81] Improve code.
bzr revid: jir@tinyerp.com-20130611110008-m3ftw03gznv802ll
---
addons/hr_recruitment/hr_recruitment.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index ead8264f663..09c238fcd86 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -206,11 +206,11 @@ class hr_applicant(base_stage, osv.Model):
def _compute_attachments(self, cr, uid, ids, fields, args, context=None):
res = {}
attachment_pool = self.pool.get('ir.attachment')
- for issue in self.browse(cr, uid, ids, context=context):
- res[issue.id] = 0
- attach = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',issue.id)])
+ for applicant in self.browse(cr, uid, ids, context=context):
+ res[applicant.id] = 0
+ attach = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)])
if attach:
- res[issue.id] = len(attach)
+ res[applicant.id] = len(attach)
return res
_columns = {
From f9733dcc0c60d555ecf0adb0aa6af175f2815d68 Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Tue, 11 Jun 2013 17:39:37 +0530
Subject: [PATCH 25/81] Change Certificate.
bzr revid: jir@tinyerp.com-20130611120937-u9frs8q3hzhizfeq
---
addons/hr_applicant_document/__init__.py | 16 ++++++++--------
addons/hr_applicant_document/__openerp__.py | 16 ++++++++--------
.../hr_applicant_document.py | 9 +++++----
3 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/addons/hr_applicant_document/__init__.py b/addons/hr_applicant_document/__init__.py
index d3188eef79a..2b119fed44c 100644
--- a/addons/hr_applicant_document/__init__.py
+++ b/addons/hr_applicant_document/__init__.py
@@ -1,24 +1,24 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
+# Copyright (C) 2010-today OpenERP SA ()
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU Affero General Public License for more details
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see
#
##############################################################################
+
import hr_applicant_document
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_applicant_document/__openerp__.py b/addons/hr_applicant_document/__openerp__.py
index 537856c54a0..539c1eb9610 100644
--- a/addons/hr_applicant_document/__openerp__.py
+++ b/addons/hr_applicant_document/__openerp__.py
@@ -1,25 +1,25 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
+# Copyright (C) 2010-today OpenERP SA ()
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU Affero General Public License for more details
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see
#
##############################################################################
+
{
'name': 'Applicant Resumes and Letters',
'version': '1.0',
diff --git a/addons/hr_applicant_document/hr_applicant_document.py b/addons/hr_applicant_document/hr_applicant_document.py
index f53688a7014..f9c62ed640d 100644
--- a/addons/hr_applicant_document/hr_applicant_document.py
+++ b/addons/hr_applicant_document/hr_applicant_document.py
@@ -2,23 +2,24 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
+# Copyright (C) 2010-today OpenERP SA ()
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# License, or (at your option) any later version
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU Affero General Public License for more details
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see
#
##############################################################################
+
import time
from openerp import tools
from datetime import datetime
From 0a44c547862b917d047a51c43f2c89d4843b3c2f Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Tue, 11 Jun 2013 19:01:41 +0530
Subject: [PATCH 26/81] Improve code.
bzr revid: jir@tinyerp.com-20130611133141-v9jm2gjst33bdf4c
---
.../hr_applicant_document.py | 46 +++++++++----------
addons/hr_recruitment/hr_recruitment_view.xml | 10 ++--
2 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/addons/hr_applicant_document/hr_applicant_document.py b/addons/hr_applicant_document/hr_applicant_document.py
index f9c62ed640d..925b27c6590 100644
--- a/addons/hr_applicant_document/hr_applicant_document.py
+++ b/addons/hr_applicant_document/hr_applicant_document.py
@@ -27,31 +27,31 @@ from openerp.osv import fields, osv
from openerp.tools.translate import _
class applicant_document(osv.osv):
- _name = 'hr.applicant'
- _inherit = 'hr.applicant'
+ _name = 'hr.applicant'
+ _inherit = 'hr.applicant'
- def _get_index_content(self, cr, uid, ids, fields, args, context=None):
- res = {}
- attachment_pool = self.pool.get('ir.attachment')
- for applicant in self.browse(cr, uid, ids, context=context):
- res[applicant.id] = 0
- attach_id = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)])
- if attach_id:
- for attach in attachment_pool.browse(cr, uid, attach_id, context):
- res[applicant.id] = attach.index_content
- return res
+ def _get_index_content(self, cr, uid, ids, fields, args, context=None):
+ res = {}
+ attachment_pool = self.pool.get('ir.attachment')
+ for applicant in self.browse(cr, uid, ids, context=context):
+ res[applicant.id] = 0
+ attach_id = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)])
+ if attach_id:
+ for attach in attachment_pool.browse(cr, uid, attach_id, context):
+ res[applicant.id] = attach.index_content
+ return res
- def _content_search(self, cursor, user, obj, name, args, context=None):
- record_ids = []
- attachment_pool = self.pool.get('ir.attachment')
- args += [('res_model','=','hr.applicant')]
- attach_ids = attachment_pool.search(cursor, user, args)
- for attach in attachment_pool.browse(cursor, user, attach_ids):
- record_ids.append(attach.res_id)
- return [('id', 'in', record_ids)]
+ def _content_search(self, cursor, user, obj, name, args, context=None):
+ record_ids = []
+ attachment_pool = self.pool.get('ir.attachment')
+ args += [('res_model','=','hr.applicant')]
+ attach_ids = attachment_pool.search(cursor, user, args)
+ for attach in attachment_pool.browse(cursor, user, attach_ids):
+ record_ids.append(attach.res_id)
+ return [('id', 'in', record_ids)]
- _columns = {
- 'index_content': fields.function(_get_index_content, string='Index Content', \
+ _columns = {
+ 'index_content': fields.function(_get_index_content, string='Index Content', \
fnct_search=_content_search,type="text"),
- }
+ }
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 3b2d6766730..98fcf27148d 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -294,12 +294,12 @@
- Search through resumes and motivation letters.
-
+
+ Search through resumes and motivation letters.
+
From d704899df3ae40be0bf1cca640e136bd0c96a2d3 Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Fri, 14 Jun 2013 14:25:59 +0530
Subject: [PATCH 29/81] Improve module description and template.
bzr revid: jir@tinyerp.com-20130614085559-auji06qm3mbhc7j2
---
addons/hr_applicant_document/__openerp__.py | 11 ++++-------
addons/hr_applicant_document/hr_applicant_document.py | 3 +--
addons/hr_recruitment/hr_recruitment.py | 2 +-
addons/hr_recruitment/hr_recruitment_data.xml | 4 ++--
4 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/addons/hr_applicant_document/__openerp__.py b/addons/hr_applicant_document/__openerp__.py
index 539c1eb9610..33a80d433bb 100644
--- a/addons/hr_applicant_document/__openerp__.py
+++ b/addons/hr_applicant_document/__openerp__.py
@@ -21,20 +21,17 @@
{
- 'name': 'Applicant Resumes and Letters',
+ 'name': 'Applicant Resumes and Latters',
'version': '1.0',
'category': 'Human Resources',
'sequence': 25,
- 'summary': 'Applicant Resumes and Letters',
+ 'summary': 'Search applicant by resume index content.',
'description': """
-Manage Applicant Resumes and letters
-====================================
-This application allows you to keep resumes and letters with applicants.
-
+ This module allows you to search applicant by resume index content.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
- 'images': ['images/hr_recruitment_analysis.jpeg','images/hr_recruitment_applicants.jpeg'],
+ 'images': [],
'depends': ['hr_recruitment','document'],
'data': ['hr_applicant_document_view.xml'],
'demo': [],
diff --git a/addons/hr_applicant_document/hr_applicant_document.py b/addons/hr_applicant_document/hr_applicant_document.py
index 62ed3dbe722..74cf96830a3 100644
--- a/addons/hr_applicant_document/hr_applicant_document.py
+++ b/addons/hr_applicant_document/hr_applicant_document.py
@@ -26,8 +26,7 @@ from datetime import datetime
from openerp.osv import fields, osv
from openerp.tools.translate import _
-class applicant_document(osv.osv):
- _name = 'hr.applicant'
+class hr_applicant(osv.osv):
_inherit = 'hr.applicant'
def _get_index_content(self, cr, uid, ids, fields, args, context=None):
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 74a242cefa3..50be3acd3bf 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -261,7 +261,7 @@ class hr_applicant(base_stage, osv.Model):
multi='day_close', type="float", store=True),
'color': fields.integer('Color Index'),
'emp_id': fields.many2one('hr.employee', 'employee'),
- 'attachments': fields.function(_compute_attachments, string='Attachments', \
+ 'attachments': fields.function(_compute_attachments, string='Number of Attachments', \
type="integer"),
'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True),
}
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index 50e19bb7d69..b3eb0ac97d1 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -232,7 +232,7 @@
If you want more details, feel free to contact us by phone.
Kind regards,
- ${object.user_id.name}
+ ${object.user_id.signature}
]]>
@@ -251,7 +251,7 @@
If I do not answer, please let me a message with some schedules to call you back.
Kind regards,
- ${object.user_id.name}
+ ${object.user_id.signature}
]]>
From d578a8f90a1438709be3496cbc23c833dce1657f Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Fri, 14 Jun 2013 14:54:53 +0530
Subject: [PATCH 30/81] Improve description.
bzr revid: jir@tinyerp.com-20130614092453-zs8hpnx3mutsmhhd
---
addons/hr_applicant_document/__openerp__.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/addons/hr_applicant_document/__openerp__.py b/addons/hr_applicant_document/__openerp__.py
index 33a80d433bb..6917084e1f4 100644
--- a/addons/hr_applicant_document/__openerp__.py
+++ b/addons/hr_applicant_document/__openerp__.py
@@ -25,9 +25,10 @@
'version': '1.0',
'category': 'Human Resources',
'sequence': 25,
- 'summary': 'Search applicant by resume index content.',
+ 'summary': 'Search job applications by Index content.',
'description': """
- This module allows you to search applicant by resume index content.
+ This module allows you to search job applications by Index content
+ of Resumes & Letters.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
From bb3cb3b570cafb38276e12b566bbf78697efb6ec Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Tue, 18 Jun 2013 12:22:06 +0530
Subject: [PATCH 31/81] Remove extra import and improve naming conventions.
bzr revid: jir@tinyerp.com-20130618065206-adscfsv8dum8h0rl
---
addons/hr_applicant_document/__openerp__.py | 2 +-
.../hr_applicant_document.py | 20 +++++++------------
2 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/addons/hr_applicant_document/__openerp__.py b/addons/hr_applicant_document/__openerp__.py
index 6917084e1f4..f9034067b00 100644
--- a/addons/hr_applicant_document/__openerp__.py
+++ b/addons/hr_applicant_document/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Applicant Resumes and Latters',
+ 'name': 'Applicant Resumes and Letters',
'version': '1.0',
'category': 'Human Resources',
'sequence': 25,
diff --git a/addons/hr_applicant_document/hr_applicant_document.py b/addons/hr_applicant_document/hr_applicant_document.py
index 74cf96830a3..7a1ea4f1002 100644
--- a/addons/hr_applicant_document/hr_applicant_document.py
+++ b/addons/hr_applicant_document/hr_applicant_document.py
@@ -18,13 +18,7 @@
# along with this program. If not, see
#
##############################################################################
-
-
-import time
-from openerp import tools
-from datetime import datetime
from openerp.osv import fields, osv
-from openerp.tools.translate import _
class hr_applicant(osv.osv):
_inherit = 'hr.applicant'
@@ -34,19 +28,19 @@ class hr_applicant(osv.osv):
attachment_pool = self.pool.get('ir.attachment')
for applicant in self.browse(cr, uid, ids, context=context):
res[applicant.id] = 0
- attach_id = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)])
- if attach_id:
- for attach in attachment_pool.browse(cr, uid, attach_id, context):
- res[applicant.id] = attach.index_content
+ attachment_ids = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)])
+ if attachment_ids:
+ for attachment in attachment_pool.browse(cr, uid, attachment_ids, context):
+ res[applicant.id] = attachment.index_content
return res
def _content_search(self, cursor, user, obj, name, args, context=None):
record_ids = []
attachment_pool = self.pool.get('ir.attachment')
args += [('res_model','=','hr.applicant')]
- attach_ids = attachment_pool.search(cursor, user, args)
- for attach in attachment_pool.browse(cursor, user, attach_ids):
- record_ids.append(attach.res_id)
+ attachment_ids = attachment_pool.search(cursor, user, args)
+ for attachment in attachment_pool.browse(cursor, user, attachment_ids):
+ record_ids.append(attachment.res_id)
return [('id', 'in', record_ids)]
_columns = {
From 4ef00d70beb7a4fe13438d81b2f07ddc53a11e47 Mon Sep 17 00:00:00 2001
From: "Amit Bhavsar (Open ERP)"
Date: Wed, 19 Jun 2013 17:31:33 +0530
Subject: [PATCH 32/81] [Imp] Improve code at hr_recruitment.
bzr revid: amb@tinyerp.com-20130619120133-hed015bgokzwt8ro
---
addons/hr_recruitment/hr_recruitment.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 50be3acd3bf..84dae5fa574 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -457,7 +457,7 @@ class hr_applicant(base_stage, osv.Model):
try:
template = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_approve_applicant')
except ValueError:
- pass
+ template = False
self._get_mail_template(cr, uid, ids, template, context)
return res
@@ -504,7 +504,7 @@ class hr_applicant(base_stage, osv.Model):
try:
template = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_refuse_applicant')
except ValueError:
- pass
+ template = False
self._get_mail_template(cr, uid, ids, template, context)
return res
From 812cb324b0be905bfd491a7725f591aa68cb8adb Mon Sep 17 00:00:00 2001
From: "Amit Bhavsar (Open ERP)"
Date: Wed, 19 Jun 2013 19:42:15 +0530
Subject: [PATCH 33/81] [Imp] Improve code and variable name.
bzr revid: amb@tinyerp.com-20130619141215-t06d5xykld07sy4i
---
.../hr_applicant_document.py | 8 ++++----
addons/hr_recruitment/hr_recruitment.py | 17 ++++++++---------
2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/addons/hr_applicant_document/hr_applicant_document.py b/addons/hr_applicant_document/hr_applicant_document.py
index 7a1ea4f1002..f5762aabfcc 100644
--- a/addons/hr_applicant_document/hr_applicant_document.py
+++ b/addons/hr_applicant_document/hr_applicant_document.py
@@ -28,9 +28,9 @@ class hr_applicant(osv.osv):
attachment_pool = self.pool.get('ir.attachment')
for applicant in self.browse(cr, uid, ids, context=context):
res[applicant.id] = 0
- attachment_ids = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)])
+ attachment_ids = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)], context=context)
if attachment_ids:
- for attachment in attachment_pool.browse(cr, uid, attachment_ids, context):
+ for attachment in attachment_pool.browse(cr, uid, attachment_ids, context=context):
res[applicant.id] = attachment.index_content
return res
@@ -38,8 +38,8 @@ class hr_applicant(osv.osv):
record_ids = []
attachment_pool = self.pool.get('ir.attachment')
args += [('res_model','=','hr.applicant')]
- attachment_ids = attachment_pool.search(cursor, user, args)
- for attachment in attachment_pool.browse(cursor, user, attachment_ids):
+ attachment_ids = attachment_pool.search(cursor, user, args, context=context)
+ for attachment in attachment_pool.browse(cursor, user, attachment_ids, context=context):
record_ids.append(attachment.res_id)
return [('id', 'in', record_ids)]
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 84dae5fa574..264a9ff175a 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -206,7 +206,7 @@ class hr_applicant(base_stage, osv.Model):
attachment_pool = self.pool.get('ir.attachment')
for applicant in self.browse(cr, uid, ids, context=context):
res[applicant.id] = 0
- attach = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)])
+ attach = attachment_pool.search(cr, uid, [('res_model','=','hr.applicant'),('res_id','=',applicant.id)], context=context)
if attach:
res[applicant.id] = len(attach)
return res
@@ -455,10 +455,10 @@ class hr_applicant(base_stage, osv.Model):
def case_close(self, cr, uid, ids, context=None):
res = super(hr_applicant, self).case_close(cr, uid, ids, context)
try:
- template = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_approve_applicant')
+ template_id = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_approve_applicant')
except ValueError:
- template = False
- self._get_mail_template(cr, uid, ids, template, context)
+ template_id = False
+ self._get_mail_template(cr, uid, ids, template_id, context)
return res
def case_close_with_emp(self, cr, uid, ids, context=None):
@@ -500,18 +500,17 @@ class hr_applicant(base_stage, osv.Model):
"""
res = super(hr_applicant, self).case_cancel(cr, uid, ids, context)
self.write(cr, uid, ids, {'probability': 0.0})
- template = False
try:
- template = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_refuse_applicant')
+ template_id = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_refuse_applicant')
except ValueError:
- template = False
- self._get_mail_template(cr, uid, ids, template, context)
+ template_id = False
+ self._get_mail_template(cr, uid, ids, template_id, context)
return res
def _get_mail_template(self, cr, uid, ids, template, context):
mail_obj = self.pool.get('mail.mail')
assert template._name == 'email.template'
- for applications in self.browse(cr, uid, ids, context):
+ for applications in self.browse(cr, uid, ids, context=context):
if applications.email_from:
mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, applications.id, True, context=context)
mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context)
From 84bb3d0fd5863bb92696e1484832d9f422e721d4 Mon Sep 17 00:00:00 2001
From: "Jignesh Rathod (OpenERP)"
Date: Mon, 15 Jul 2013 15:40:35 +0530
Subject: [PATCH 34/81] [IMP] Remove Dependancy document_ftp.
bzr revid: jir@tinyerp.com-20130715101035-3kure8xsc7rs9b3j
---
addons/hr_recruitment/hr_recruitment_view.xml | 1 +
addons/hr_recruitment/res_config.py | 4 ++--
addons/hr_recruitment/res_config_view.xml | 4 ++--
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 0b210f62ccc..d99c1f70f18 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -125,6 +125,7 @@
+
diff --git a/addons/hr_recruitment/res_config.py b/addons/hr_recruitment/res_config.py
index ba86722a6bc..56218c3183c 100644
--- a/addons/hr_recruitment/res_config.py
+++ b/addons/hr_recruitment/res_config.py
@@ -26,9 +26,9 @@ class hr_applicant_settings(osv.osv_memory):
_inherit = ['hr.config.settings', 'fetchmail.config.settings']
_columns = {
- 'module_document_ftp': fields.boolean('Allow the automatic indexation of resumes',
+ 'module_document': fields.boolean('Allow the automatic indexation of resumes',
help="""Manage your CV's and motivation letter related to all applicants.
- This installs the module document_ftp. This will install the knowledge management module in order to allow you to search using specific keywords through the content of all documents (PDF, .DOCx...)"""),
+ This installs the module document. This will install the knowledge management module in order to allow you to search using specific keywords through the content of all documents (PDF, .DOCx...)"""),
}
diff --git a/addons/hr_recruitment/res_config_view.xml b/addons/hr_recruitment/res_config_view.xml
index e341e39c0a4..b0dfc5bb232 100644
--- a/addons/hr_recruitment/res_config_view.xml
+++ b/addons/hr_recruitment/res_config_view.xml
@@ -15,8 +15,8 @@
-
-
+
+
From 1d391ebb33d602316f2f467fd987767b62bc6f58 Mon Sep 17 00:00:00 2001
From: bth-openerp
Date: Tue, 16 Jul 2013 14:36:53 +0530
Subject: [PATCH 35/81] [FIX]Resolve conflicts.
bzr revid: bth@tinyerp.com-20130716090653-4xrtndazb02k2kof
---
addons/hr_recruitment/hr_recruitment.py | 61 -------------------------
1 file changed, 61 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 9d8e1669aad..65bec6965d7 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -421,28 +421,6 @@ class hr_applicant(osv.Model):
self.pool.get('hr.job').message_post(cr, uid, [applicant.job_id.id], body=_('Applicant created'), subtype="hr_recruitment.mt_job_new_applicant", context=context)
return obj_id
-<<<<<<< TREE
- def case_open(self, cr, uid, ids, context=None):
- """
- open Request of the applicant for the hr_recruitment
- """
- res = super(hr_applicant, self).case_open(cr, uid, ids, context)
- date = self.read(cr, uid, ids, ['date_open'])[0]
- if not date['date_open']:
- self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S'),})
- return res
-
- def case_close(self, cr, uid, ids, context=None):
- res = super(hr_applicant, self).case_close(cr, uid, ids, context)
- try:
- template_id = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_approve_applicant')
- except ValueError:
- template_id = False
- self._get_mail_template(cr, uid, ids, template_id, context)
- return res
-
- def case_close_with_emp(self, cr, uid, ids, context=None):
-=======
def write(self, cr, uid, ids, vals, context=None):
if isinstance(ids, (int, long)):
ids = [ids]
@@ -457,7 +435,6 @@ class hr_applicant(osv.Model):
def create_employee_from_applicant(self, cr, uid, ids, context=None):
""" Create an hr.employee from the hr.applicants """
->>>>>>> MERGE-SOURCE
if context is None:
context = {}
hr_employee = self.pool.get('hr.employee')
@@ -490,44 +467,6 @@ class hr_applicant(osv.Model):
dict_act_window['view_mode'] = 'form,tree'
return dict_act_window
-<<<<<<< TREE
- def case_cancel(self, cr, uid, ids, context=None):
- """Overrides cancel for crm_case for setting probability
- """
- res = super(hr_applicant, self).case_cancel(cr, uid, ids, context)
- self.write(cr, uid, ids, {'probability': 0.0})
- try:
- template_id = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'email_template_refuse_applicant')
- except ValueError:
- template_id = False
- self._get_mail_template(cr, uid, ids, template_id, context)
- return res
-
- def _get_mail_template(self, cr, uid, ids, template, context):
- mail_obj = self.pool.get('mail.mail')
- assert template._name == 'email.template'
- for applications in self.browse(cr, uid, ids, context=context):
- if applications.email_from:
- mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, applications.id, True, context=context)
- mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context)
- if mail_state and mail_state['state'] == 'exception':
- raise self.pool.get('res.config.settings').get_config_warning(cr, _("Cannot send email: no outgoing email server configured.\nYou can configure it under %(menu:base_setup.menu_general_configuration)s."), context)
-
- def case_pending(self, cr, uid, ids, context=None):
- """Marks case as pending"""
- res = super(hr_applicant, self).case_pending(cr, uid, ids, context)
- self.write(cr, uid, ids, {'probability': 0.0})
- return res
-
- def case_reset(self, cr, uid, ids, context=None):
- """Resets case as draft
- """
- res = super(hr_applicant, self).case_reset(cr, uid, ids, context)
- self.write(cr, uid, ids, {'date_open': False, 'date_closed': False})
- return res
-
-=======
->>>>>>> MERGE-SOURCE
def set_priority(self, cr, uid, ids, priority, *args):
"""Set applicant priority
"""
From a8063ba55c22c16891169f1cf7e47572a95ddc3b Mon Sep 17 00:00:00 2001
From: "Amit Bhavsar (Open ERP)"
Date: Fri, 23 Aug 2013 11:03:50 +0530
Subject: [PATCH 36/81] [imp] improve typo and on create employee behave at hr
application.
bzr revid: amb@tinyerp.com-20130823053350-mpknggcrgl1504ta
---
addons/hr_recruitment/hr_recruitment.py | 2 +-
addons/hr_recruitment/hr_recruitment_data.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 981b8364c21..e1054a368c5 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -450,7 +450,7 @@ class hr_applicant(osv.Model):
'job_id': applicant.job_id.id,
'address_home_id': address_id,
'department_id': applicant.department_id.id or False,
- 'address_id': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.id or False,
+ 'address_id': applicant.job_id and applicant.job_id.company_id and applicant.job_id.company_id.id or False,
'work_email': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.email or False,
'work_phone': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.phone or False,
})
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index b2faf34390b..d3cbc9fff0e 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -221,7 +221,7 @@
${object.lang}
- Dear Madam, Dear Sir,
+ Dear Applicant,
We thank you for your interest in our company and for your application.
Unfortunately, your profile does not match with our needs or our recruitment campaign has reached its term.
If you want more details, feel free to contact us by phone.
I have checked this application but It's not match with our requirement. so no need to process further and we should refuse this application.
+
Kind regards,
]]>
+ comment
+
+
+
+
+ hr.applicant
+
+ Hello,
+
We should move further for this application as early as possible..
+
Kind regards,
]]>
+ comment
+
+
+
+
From 4da8f14e0cadec975c9808281968e94745e21441 Mon Sep 17 00:00:00 2001
From: "Darshan Kalola (OpenERP)"
Date: Fri, 20 Sep 2013 15:58:18 +0530
Subject: [PATCH 45/81] [IMP]add template_id in hr_recruitment_stage for mail
functionality.
bzr revid: dka@tinyerp.com-20130920102818-xj7ua08i5406wi16
---
addons/hr_recruitment/hr_recruitment.py | 14 ++++
addons/hr_recruitment/hr_recruitment_data.xml | 79 ++++++++++---------
addons/hr_recruitment/hr_recruitment_view.xml | 1 +
3 files changed, 55 insertions(+), 39 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index fbbe5305ef9..9903fa09d23 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -54,6 +54,7 @@ class hr_recruitment_stage(osv.osv):
'department_id':fields.many2one('hr.department', 'Specific to a Department', help="Stages of the recruitment process may be different per department. If this stage is common to all departments, keep this field empty."),
'fold': fields.boolean('Hide in views if empty', help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."),
'requirements': fields.text('Requirements'),
+ 'template_id': fields.many2one('email.template', 'Use template', help="Use this email template, so that an email will be sent to applicant if application stage is changed to this stage.")
}
_defaults = {
'sequence': 1,
@@ -255,6 +256,16 @@ class hr_applicant(osv.Model):
_group_by_full = {
'stage_id': _read_group_stage_ids
}
+
+ def _get_mail_template(self, cr, uid, ids, template, context):
+ mail_obj = self.pool.get('mail.mail')
+ assert template._name == 'email.template'
+ for applications in self.browse(cr, uid, ids, context):
+ if applications.email_from:
+ mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, applications.id, True, context=context)
+ mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context)
+ if mail_state and mail_state['state'] == 'exception':
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _("Cannot send email: no outgoing email server configured.\nYou can configure it under %(menu:base_setup.menu_general_configuration)s."), context)
def onchange_job(self, cr, uid, ids, job_id=False, context=None):
if job_id:
@@ -429,6 +440,9 @@ class hr_applicant(osv.Model):
# stage_id: track last stage before update
if 'stage_id' in vals:
vals['date_last_stage_update'] = fields.datetime.now()
+ stage_obj = self.pool.get('hr.recruitment.stage').browse(cr, uid, vals.get('stage_id'), context=context)
+ if stage_obj and stage_obj.template_id:
+ self._get_mail_template(cr, uid, ids, stage_obj.template_id, context)
for applicant in self.browse(cr, uid, ids, context=None):
vals['last_stage_id'] = applicant.stage_id.id
res = super(hr_applicant, self).write(cr, uid, [applicant.id], vals, context=context)
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index d3cbc9fff0e..9cd32139598 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -17,6 +17,44 @@
Interview
+
+
+ Refuse Application
+ ${user.email or ''}
+ We refuse your application
+ ${object.email_from}
+ ${object.lang}
+
+
+ Dear Applicant,
+
We thank you for your interest in our company and for your application.
+ Unfortunately, your profile does not match with our needs or our recruitment campaign has reached its term.
+
If you want more details, feel free to contact us by phone.
+
Kind regards,
+
+ ${object.user_id.signature}
+ ]]>
+
+
+
+ Interested in Application
+ ${user.email or ''}
+ ${object.email_from}
+ We are interested in your application
+ ${object.lang}
+
+
+ Dear Applicant,
+
Congrats! Your resume's got our interest!
+ I will call you as soon as possible to make a 10 minutes phone interview and plan a first meeting.
+
If we can’t reach you or if you miss our call, feel free to reach me back on the number 001 312 349 3030
+ If I do not answer, please let me a message with some schedules to call you back.
We thank you for your interest in our company and for your application.
- Unfortunately, your profile does not match with our needs or our recruitment campaign has reached its term.
-
If you want more details, feel free to contact us by phone.
-
Kind regards,
-
- ${object.user_id.signature}
- ]]>
-
-
-
- Interested in Application
- ${user.email or ''}
- ${object.email_from}
- We are interested in your application
- ${object.lang}
-
-
- Dear Applicant,
-
Congrats! Your resume's got our interest!
- I will call you as soon as possible to make a 10 minutes phone interview and plan a first meeting.
-
If we can’t reach you or if you miss our call, feel free to reach me back on the number 001 312 349 3030
- If I do not answer, please let me a message with some schedules to call you back.
\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"
+" 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"
+" 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"
+" 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
+#: 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"
+" 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"
+" 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"
+" 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"
+" 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"
+" 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"
+" 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 ""
diff --git a/addons/hr_contract/i18n/tr.po b/addons/hr_contract/i18n/tr.po
index 5fe831bcccc..bd044a23057 100644
--- a/addons/hr_contract/i18n/tr.po
+++ b/addons/hr_contract/i18n/tr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2013-08-04 16:32+0000\n"
+"PO-Revision-Date: 2013-12-19 20:33+0000\n"
"Last-Translator: Ediz Duman \n"
"Language-Team: Turkish
\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-21 06:11+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2013-12-20 05:34+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: hr_contract
#: field:hr.contract,wage:0
@@ -140,7 +140,7 @@ msgstr "Notlar"
#. module: hr_contract
#: field:hr.contract,permit_no:0
msgid "Work Permit No"
-msgstr "İş İzin No"
+msgstr "Çalışma İzin No"
#. module: hr_contract
#: view:hr.contract:0
diff --git a/addons/mrp/i18n/de.po b/addons/mrp/i18n/de.po
index 65489bd9184..d2f51ccc32f 100644
--- a/addons/mrp/i18n/de.po
+++ b/addons/mrp/i18n/de.po
@@ -8,15 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
-"PO-Revision-Date: 2013-03-21 00:09+0000\n"
-"Last-Translator: Thorsten Vocks (OpenBig.org) \n"
+"PO-Revision-Date: 2013-12-19 17:23+0000\n"
+"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: German \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-21 06:20+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2013-12-20 05:34+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: mrp
#: help:mrp.config.settings,module_mrp_repair:0
diff --git a/addons/portal_project/i18n/de.po b/addons/portal_project/i18n/de.po
index a2c69e168cb..8a1650c1524 100644
--- a/addons/portal_project/i18n/de.po
+++ b/addons/portal_project/i18n/de.po
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-12-19 17:01+0000\n"
+"Last-Translator: Matthias Fax \n"
"Language-Team: German \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-21 06:25+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2013-12-20 05:34+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: portal_project
#: model:ir.model,name:portal_project.model_project_project
msgid "Project"
-msgstr ""
+msgstr "Projekte"
#. module: portal_project
#: model:ir.actions.act_window,help:portal_project.open_view_project
diff --git a/addons/product/i18n/de.po b/addons/product/i18n/de.po
index 8ce3430c8a1..1e429451e08 100644
--- a/addons/product/i18n/de.po
+++ b/addons/product/i18n/de.po
@@ -9,14 +9,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2013-12-02 19:34+0000\n"
-"Last-Translator: Rudolf Schnapka \n"
+"PO-Revision-Date: 2013-12-19 17:29+0000\n"
+"Last-Translator: Matthias Fax \n"
"Language-Team: German \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-12-03 06:16+0000\n"
-"X-Generator: Launchpad (build 16856)\n"
+"X-Launchpad-Export-Date: 2013-12-20 05:34+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
"Language: de\n"
#. module: product
@@ -38,7 +38,7 @@ msgstr "Basis Preis zur Berechnung"
#: help:product.product,seller_qty:0
msgid "This is minimum quantity to purchase from Main Supplier."
msgstr ""
-"Dieses ist die minimale Menge die beim Lieferanten eingekauft werden kann."
+"Das ist die Mindestbestellmenge für den Einkauf beim Hauptlieferanten."
#. module: product
#: model:product.template,name:product.product_product_34_product_template
@@ -66,7 +66,7 @@ msgid ""
"This pricelist will be used, instead of the default one, for sales to the "
"current partner"
msgstr ""
-"Diese Preisliste wird anstelle der Standard Preisliste zur Abrechnung an den "
+"Diese Preisliste wird anstelle der Standard-Preisliste beim Verkauf an den "
"aktuellen Partner genutzt."
#. module: product
@@ -92,7 +92,7 @@ msgstr "Basispreise"
#. module: product
#: field:product.pricelist.item,name:0
msgid "Rule Name"
-msgstr "Regel Bezeichnung"
+msgstr "Regelbezeichnung"
#. module: product
#: help:product.template,list_price:0
diff --git a/addons/purchase/i18n/de.po b/addons/purchase/i18n/de.po
index 238b5efb3ba..0e7209a9da5 100644
--- a/addons/purchase/i18n/de.po
+++ b/addons/purchase/i18n/de.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
-"PO-Revision-Date: 2013-06-18 08:50+0000\n"
-"Last-Translator: Armin GREGOR \n"
+"PO-Revision-Date: 2013-12-19 17:05+0000\n"
+"Last-Translator: Matthias Fax \n"
"Language-Team: German \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-21 06:31+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2013-12-20 05:34+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: purchase
#: model:res.groups,name:purchase.group_analytic_accounting
@@ -30,7 +30,7 @@ msgstr "account.config.settings"
#. module: purchase
#: view:board.board:0
msgid "Monthly Purchases by Category"
-msgstr "Monatliche Einkäufe je Kategorie"
+msgstr "Monatliche Bestellungen nach Kategorie"
#. module: purchase
#: help:purchase.config.settings,module_warning:0
@@ -970,7 +970,7 @@ msgstr "wird erstellt, um Sub-Auftrag zu vergeben"
#: model:ir.ui.menu,name:purchase.menu_purchase_config
#: view:res.partner:0
msgid "Purchases"
-msgstr "Einkäufe"
+msgstr "Einkauf"
#. module: purchase
#: view:purchase.report:0
@@ -1474,7 +1474,7 @@ msgstr "Anschaffungspreis aus Durchschnittspreisen errechnen lassen"
#: model:ir.actions.act_window,name:purchase.action_purchase_configuration
#: view:purchase.config.settings:0
msgid "Configure Purchases"
-msgstr "Konfiguriere Bestellungen"
+msgstr "Konfiguriere Einkauf"
#. module: purchase
#: view:purchase.order:0
@@ -1787,7 +1787,7 @@ msgid ""
"This pricelist will be used, instead of the default one, for purchases from "
"the current partner"
msgstr ""
-"Diese Preisliste wird anstelle der Standard Preisliste für Einkäufe beim "
+"Diese Preisliste wird anstelle der Standard-Preisliste für Einkäufe beim "
"aktuellen Partner verwendet."
#. module: purchase
From 73dfa69e34feef8629ece89ea74ad82eb42b3c5d Mon Sep 17 00:00:00 2001
From: Xavier ALT
Date: Fri, 20 Dec 2013 10:18:23 +0100
Subject: [PATCH 65/81] [FIX] project: fix task progress not correctly updated
when reopening a task
bzr revid: xal@openerp.com-20131220091823-o9uvvlo6hdh4xukw
---
addons/project/project.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/project/project.py b/addons/project/project.py
index 7f56b573ebb..8487006f8b6 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -808,7 +808,7 @@ class task(base_stage, osv.osv):
}),
'progress': fields.function(_hours_get, string='Progress (%)', multi='hours', group_operator="avg", help="If the task has a progress of 99.99% you should close the task if it's finished or reevaluate the time",
store = {
- 'project.task': (lambda self, cr, uid, ids, c={}: ids, ['work_ids', 'remaining_hours', 'planned_hours','state'], 10),
+ 'project.task': (lambda self, cr, uid, ids, c={}: ids, ['work_ids', 'remaining_hours', 'planned_hours', 'state', 'stage_id'], 10),
'project.task.work': (_get_task, ['hours'], 10),
}),
'delay_hours': fields.function(_hours_get, string='Delay Hours', multi='hours', help="Computed as difference between planned hours by the project manager and the total hours of the task.",
From 8fa229061a41620fc51085b7ec5ccf40ce4f73d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 20 Dec 2013 10:26:44 +0100
Subject: [PATCH 66/81] [IMP] hr_recruitment: sending an email based on the
template of the stage is now done using the composer, therefore using
message_post and all processing required. Next step is to factorize that code
to be able to use it directly with one call.
bzr revid: tde@openerp.com-20131220092644-72uf3jpxn80u1ymq
---
addons/hr_recruitment/hr_recruitment.py | 45 ++++++++++++++++---------
1 file changed, 30 insertions(+), 15 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index df6a0d0e7fd..e12efdabb58 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -258,16 +258,6 @@ class hr_applicant(osv.Model):
_group_by_full = {
'stage_id': _read_group_stage_ids
}
-
- def _get_mail_template(self, cr, uid, ids, template, context):
- mail_obj = self.pool.get('mail.mail')
- assert template._name == 'email.template'
- for applications in self.browse(cr, uid, ids, context):
- if applications.email_from:
- mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, applications.id, True, context=context)
- mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context)
- if mail_state and mail_state['state'] == 'exception':
- raise self.pool.get('res.config.settings').get_config_warning(cr, _("Cannot send email: no outgoing email server configured.\nYou can configure it under %(menu:base_setup.menu_general_configuration)s."), context)
def onchange_job(self, cr, uid, ids, job_id=False, context=None):
if job_id:
@@ -406,20 +396,45 @@ class hr_applicant(osv.Model):
def write(self, cr, uid, ids, vals, context=None):
if isinstance(ids, (int, long)):
ids = [ids]
+ res = True
+
# user_id change: update date_start
if vals.get('user_id'):
vals['date_start'] = fields.datetime.now()
# stage_id: track last stage before update
if 'stage_id' in vals:
vals['date_last_stage_update'] = fields.datetime.now()
- stage_obj = self.pool.get('hr.recruitment.stage').browse(cr, uid, vals.get('stage_id'), context=context)
- if stage_obj and stage_obj.template_id:
- self._get_mail_template(cr, uid, ids, stage_obj.template_id, context)
for applicant in self.browse(cr, uid, ids, context=None):
vals['last_stage_id'] = applicant.stage_id.id
res = super(hr_applicant, self).write(cr, uid, [applicant.id], vals, context=context)
- return res
- return super(hr_applicant, self).write(cr, uid, ids, vals, context=context)
+ else:
+ res = super(hr_applicant, self).write(cr, uid, ids, vals, context=context)
+
+ # post processing: if stage changed, post a message in the chatter
+ if vals.get('stage_id'):
+ stage = self.pool['hr.recruitment.stage'].browse(cr, uid, vals['stage_id'], context=context)
+ if stage.template_id:
+ # TDENOTE: probably factorize me in a message_post_with_template generic method FIXME
+ compose_ctx = dict(context,
+ active_ids=ids)
+ compose_id = self.pool['mail.compose.message'].create(
+ cr, uid, {
+ 'model': self._name,
+ 'composition_mode': 'mass_mail',
+ 'template_id': stage.template_id.id,
+ 'same_thread': True,
+ 'post': True,
+ 'notify': True,
+ }, context=compose_ctx)
+ self.pool['mail.compose.message'].write(
+ cr, uid, [compose_id],
+ self.pool['mail.compose.message'].onchange_template_id(
+ cr, uid, [compose_id],
+ stage.template_id.id, 'mass_mail', self._name, False,
+ context=compose_ctx)['value'],
+ context=compose_ctx)
+ self.pool['mail.compose.message'].send_mail(cr, uid, [compose_id], context=compose_ctx)
+ return res
def create_employee_from_applicant(self, cr, uid, ids, context=None):
""" Create an hr.employee from the hr.applicants """
From 4a55165597a9cfe931ef62aa6d29404ff1d671c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 20 Dec 2013 10:27:56 +0100
Subject: [PATCH 67/81] [FIX] email_template: when sending email, process
partner_to value also to convet it into a recipient_ids.
Hint: backport me into saas-2 or even 7.0
bzr revid: tde@openerp.com-20131220092756-o2qx54cjfq0qbsc9
---
addons/email_template/email_template.py | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py
index 6e19b1eb8aa..3139d5bc14b 100644
--- a/addons/email_template/email_template.py
+++ b/addons/email_template/email_template.py
@@ -411,7 +411,16 @@ class email_template(osv.osv):
# create a mail_mail based on values, without attachments
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['partner_to'] # TODO Properly use them.
+
+ # process partner_to field that is a comma separated list of partner_ids -> recipient_ids
+ # TDENOTE: should probably be done in saas / 7.0, FIXME
+ values['recipient_ids'] = []
+ partner_to = values.pop('partner_to', '')
+ if partner_to:
+ for partner_id in partner_to.split(','):
+ if partner_id: # placeholders could generate '', 3, 2 due to some empty field values
+ values['recipient_ids'].append((4, int(partner_id)))
+
attachment_ids = values.pop('attachment_ids', [])
attachments = values.pop('attachments', [])
msg_id = mail_mail.create(cr, uid, values, context=context)
@@ -420,11 +429,11 @@ class email_template(osv.osv):
# manage attachments
for attachment in attachments:
attachment_data = {
- 'name': attachment[0],
- 'datas_fname': attachment[0],
- 'datas': attachment[1],
- 'res_model': 'mail.message',
- 'res_id': mail.mail_message_id.id,
+ 'name': attachment[0],
+ 'datas_fname': attachment[0],
+ 'datas': attachment[1],
+ 'res_model': 'mail.message',
+ 'res_id': mail.mail_message_id.id,
}
context.pop('default_type', None)
attachment_ids.append(ir_attachment.create(cr, uid, attachment_data, context=context))
From 28a41dc80147ebae0317d26cb33ba248fe4dc2e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 20 Dec 2013 11:18:47 +0100
Subject: [PATCH 68/81] [IMP] hr_recruitment: improved approve/refuse templates
bzr revid: tde@openerp.com-20131220101847-a4ku8yst9ve8cf4y
---
addons/hr_recruitment/hr_recruitment_data.xml | 35 +++++++++----------
1 file changed, 17 insertions(+), 18 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index 1675b092b3f..5e665bde848 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -17,42 +17,41 @@
Interview
-
+
- Refuse Application
- ${user.email or ''}
- We refuse your application
+ Application refused
+ Application refused${object.email_from}
- ${object.lang}
+ ${object.partner_id and object.partner_id.id or ''}
+ ${object.partner_id and object.partner_id.lang or ''}
-
- Dear Applicant,
+
+ Dear ${object.partner_name},
We thank you for your interest in our company and for your application.
- Unfortunately, your profile does not match with our needs or our recruitment campaign has reached its term.
+ Unfortunately, your profile does not match with our needs or our recruitment
+ campaign has reached its term.
If you want more details, feel free to contact us by phone.
Kind regards,
- ${object.user_id.signature}
- ]]>
+ ${object.user_id and object.user_id.signature or ''}]]>
- Interested in Application
- ${user.email or ''}
+ Application approved
+ Application approved${object.email_from}
- We are interested in your application
- ${object.lang}
+ ${object.partner_id and object.partner_id.id or ''}
+ ${object.partner_id and object.partner_id.lang or ''}
-
- Dear Applicant,
+
+ Dear ${object.partner_name},
Congrats! Your resume's got our interest!
I will call you as soon as possible to make a 10 minutes phone interview and plan a first meeting.
If we can’t reach you or if you miss our call, feel free to reach me back on the number 001 312 349 3030
If I do not answer, please let me a message with some schedules to call you back.
Kind regards,
- ${object.user_id.signature}
- ]]>
+ ${object.user_id.signature}]]>
From 5ce340694e1ee12a057b709a3ac7f62a9a6a7be5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 20 Dec 2013 11:24:22 +0100
Subject: [PATCH 69/81] [FIX] email_template: fixed a test, partner_to is a
list of ids, but not a python list
bzr revid: tde@openerp.com-20131220102422-holr2goxt823gt5x
---
addons/email_template/tests/test_ir_actions.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/email_template/tests/test_ir_actions.py b/addons/email_template/tests/test_ir_actions.py
index d323ee36c1f..9b408a45316 100644
--- a/addons/email_template/tests/test_ir_actions.py
+++ b/addons/email_template/tests/test_ir_actions.py
@@ -33,7 +33,7 @@ class TestServerActionsEmail(TestServerActionsBase):
'name': 'TestTemplate',
'email_from': 'myself@example.com',
'email_to': 'brigitte@example.com',
- 'partner_to': '[%s]' % self.test_partner_id,
+ 'partner_to': '%s' % self.test_partner_id,
'model_id': self.res_partner_model_id,
'subject': 'About ${object.name}',
'body_html': '
Dear ${object.name}, your parent is ${object.parent_id and object.parent_id.name or "False"}
From abefabfa3e5f3efa523cc8b55fca9fb934c0891e Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Fri, 20 Dec 2013 12:52:13 +0100
Subject: [PATCH 71/81] [FIX] mail: fix _get_default_from if no alias_name for
user.
As alias_name is not anymore required, we should check that the alias_domain AND alias_name are set before choosing the alias as email_from of the mail.message
bzr revid: dle@openerp.com-20131220115213-ll8duh01csk0xy4t
---
addons/mail/mail_message.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index de8e4c68fda..b29642180e8 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -201,7 +201,7 @@ class mail_message(osv.Model):
def _get_default_from(self, cr, uid, context=None):
this = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context=context)
- if this.alias_domain:
+ if this.alias_name and this.alias_domain:
return '%s <%s@%s>' % (this.name, this.alias_name, this.alias_domain)
elif this.email:
return '%s <%s>' % (this.name, this.email)
From 4abd454e8e21132c199841815cffa35a59068e8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 20 Dec 2013 13:52:04 +0100
Subject: [PATCH 72/81] [FIX] hr_recruitment: email.template field is
partner_to, not partner_id
bzr revid: tde@openerp.com-20131220125204-24xwn1jzo2nyiwzb
---
addons/hr_recruitment/hr_recruitment_data.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index 5e665bde848..59d1589e7ff 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -22,7 +22,7 @@
Application refusedApplication refused${object.email_from}
- ${object.partner_id and object.partner_id.id or ''}
+ ${object.partner_id and object.partner_id.id or ''}${object.partner_id and object.partner_id.lang or ''}
@@ -40,7 +40,7 @@
Application approvedApplication approved${object.email_from}
- ${object.partner_id and object.partner_id.id or ''}
+ ${object.partner_id and object.partner_id.id or ''}${object.partner_id and object.partner_id.lang or ''}
From b92ad3900514875bc97d135af5feb0cdef1481e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 20 Dec 2013 15:46:52 +0100
Subject: [PATCH 73/81] [FIX] email_template: support of email_recipients in
send_mail. email_recipients is a char fields holding a comma separated list
of partner_ids that are the email recipients. This field is correctly handled
in the composer but was not taken into account in the send_mail method
email_template. However due to model limitations, this field can only be
taken into account when sending the email directly using force_send. When the
email is queued, no field is available to hold the value of email_recipients.
This is already fixed in trunk/v8 as a field has been added to handle this
value.
[FIX] mail: when sending email to some recipients_ids, filter to have only
the existing partner_ids. Trusting email template to generate valid
partner_ids is a bit risky.
[TESTS] email_template: added tests for send_mail
bzr revid: tde@openerp.com-20131220144652-h18yam60vpedbh7x
---
addons/email_template/email_template.py | 24 ++++++++++-----
addons/email_template/tests/test_mail.py | 37 ++++++++++++++++++++++++
addons/mail/mail_mail.py | 4 ++-
3 files changed, 57 insertions(+), 8 deletions(-)
diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py
index 356d903b03d..bf1341da34b 100644
--- a/addons/email_template/email_template.py
+++ b/addons/email_template/email_template.py
@@ -377,7 +377,17 @@ class email_template(osv.osv):
# create a mail_mail based on values, without attachments
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.
+
+ # process email_recipients field that is a comma separated list of partner_ids -> recipient_ids
+ # NOTE: only usable if force_send is True, because otherwise the value is
+ # not stored on the mail_mail, and therefore lost -> fixed in v8
+ recipient_ids = []
+ email_recipients = values.pop('email_recipients', '')
+ if email_recipients:
+ for partner_id in email_recipients.split(','):
+ if partner_id: # placeholders could generate '', 3, 2 due to some empty field values
+ recipient_ids.append(int(partner_id))
+
attachment_ids = values.pop('attachment_ids', [])
attachments = values.pop('attachments', [])
msg_id = mail_mail.create(cr, uid, values, context=context)
@@ -386,11 +396,11 @@ class email_template(osv.osv):
# manage attachments
for attachment in attachments:
attachment_data = {
- 'name': attachment[0],
- 'datas_fname': attachment[0],
- 'datas': attachment[1],
- 'res_model': 'mail.message',
- 'res_id': mail.mail_message_id.id,
+ 'name': attachment[0],
+ 'datas_fname': attachment[0],
+ 'datas': attachment[1],
+ 'res_model': 'mail.message',
+ 'res_id': mail.mail_message_id.id,
}
context.pop('default_type', None)
attachment_ids.append(ir_attachment.create(cr, uid, attachment_data, context=context))
@@ -399,7 +409,7 @@ class email_template(osv.osv):
mail_mail.write(cr, uid, msg_id, {'attachment_ids': [(6, 0, attachment_ids)]}, context=context)
if force_send:
- mail_mail.send(cr, uid, [msg_id], context=context)
+ mail_mail.send(cr, uid, [msg_id], recipient_ids=recipient_ids, context=context)
return msg_id
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/email_template/tests/test_mail.py b/addons/email_template/tests/test_mail.py
index a4ecb9b6f91..2e1a8c5267a 100644
--- a/addons/email_template/tests/test_mail.py
+++ b/addons/email_template/tests/test_mail.py
@@ -21,6 +21,7 @@
import base64
from openerp.addons.mail.tests.test_mail_base import TestMailBase
+from openerp.tools import mute_logger
class test_message_compose(TestMailBase):
@@ -199,3 +200,39 @@ class test_message_compose(TestMailBase):
# Generate messsage with default email and partner on template
mail_value = mail_compose.generate_email_for_composer(cr, uid, email_template_id, uid)
self.assertEqual(set(mail_value['partner_ids']), set(send_to), 'mail.message partner_ids list created by template is incorrect')
+
+ @mute_logger('openerp.osv.orm', 'openerp.osv.orm')
+ def test_10_email_templating(self):
+ """ Tests designed for the mail.compose.message wizard updated by email_template. """
+ cr, uid, context = self.cr, self.uid, {}
+
+ # create the email.template on mail.group model
+ group_model_id = self.registry('ir.model').search(cr, uid, [('model', '=', 'mail.group')])[0]
+ email_template = self.registry('email.template')
+ email_template_id = email_template.create(cr, uid, {
+ 'model_id': group_model_id,
+ 'name': 'Pigs Template',
+ 'email_from': 'Raoul Grosbedon ',
+ 'subject': '${object.name}',
+ 'body_html': '${object.description}',
+ 'user_signature': True,
+ 'email_to': 'b@b.b c@c.c',
+ 'email_cc': 'd@d.d',
+ 'email_recipients': '${user.partner_id.id},%s,%s,-1' % (self.user_raoul.partner_id.id, self.user_bert.partner_id.id)
+ })
+
+ # not force send: email_recipients is not taken into account
+ msg_id = email_template.send_mail(cr, uid, email_template_id, self.group_pigs_id, context=context)
+ mail = self.mail_mail.browse(cr, uid, msg_id, context=context)
+ self.assertEqual(mail.subject, 'Pigs', 'email_template: send_mail: wrong subject')
+ self.assertEqual(mail.email_to, 'b@b.b c@c.c', 'email_template: send_mail: wrong email_to')
+ self.assertEqual(mail.email_cc, 'd@d.d', 'email_template: send_mail: wrong email_cc')
+
+ # force send: take email_recipients into account
+ email_template.send_mail(cr, uid, email_template_id, self.group_pigs_id, force_send=True, context=context)
+ sent_emails = self._build_email_kwargs_list
+ email_to_lst = ['"Followers of Pigs" ', '"Followers of Pigs" ', '"Followers of Pigs" ']
+ self.assertEqual(len(sent_emails), 3, 'email_template: send_mail: 3 valid email recipients -> should send 3 emails')
+ for email in sent_emails:
+ self.assertEqual(len(email['email_to']), 1, 'email_template: send_mail: email_recipient should send email to one recipient at a time')
+ self.assertIn(email['email_to'][0], email_to_lst, 'email_template: send_mail: wrong email_recipients')
diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py
index fbf9d5ecb6f..d49c84bbd6d 100644
--- a/addons/mail/mail_mail.py
+++ b/addons/mail/mail_mail.py
@@ -282,7 +282,9 @@ class mail_mail(osv.Model):
# specific behavior to customize the send email for notified partners
email_list = []
if recipient_ids:
- for partner in self.pool.get('res.partner').browse(cr, SUPERUSER_ID, recipient_ids, context=context):
+ partner_obj = self.pool.get('res.partner')
+ existing_recipient_ids = partner_obj.exists(cr, SUPERUSER_ID, recipient_ids, context=context)
+ for partner in partner_obj.browse(cr, SUPERUSER_ID, existing_recipient_ids, context=context):
email_list.append(self.send_get_email_dict(cr, uid, mail, partner=partner, context=context))
else:
email_list.append(self.send_get_email_dict(cr, uid, mail, context=context))
From 931f52f0f5d7761a05951ae0a7aa0e38d97d9729 Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Mon, 23 Dec 2013 05:47:46 +0000
Subject: [PATCH 74/81] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20131221061900-mrdvau1f6w722vsn
bzr revid: launchpad_translations_on_behalf_of_openerp-20131222055708-jg10h0irjyde2qii
bzr revid: launchpad_translations_on_behalf_of_openerp-20131223054746-koli3yft4vt25ld4
---
addons/account/i18n/fr.po | 10 ++--
addons/hr_payroll/i18n/sl.po | 52 ++++++++++---------
addons/resource/i18n/sl.po | 90 ++++++++++++++++++++-------------
addons/stock/i18n/es_PE.po | 12 ++---
addons/survey/i18n/sl.po | 98 +++++++++++++++++++-----------------
5 files changed, 145 insertions(+), 117 deletions(-)
diff --git a/addons/account/i18n/fr.po b/addons/account/i18n/fr.po
index af85ad650ee..7de6d516636 100644
--- a/addons/account/i18n/fr.po
+++ b/addons/account/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-14 22:29+0000\n"
-"PO-Revision-Date: 2013-12-11 11:02+0000\n"
-"Last-Translator: WANTELLET Sylvain \n"
+"PO-Revision-Date: 2013-12-22 18:36+0000\n"
+"Last-Translator: Cedric Le Brouster \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-12-12 05:58+0000\n"
-"X-Generator: Launchpad (build 16869)\n"
+"X-Launchpad-Export-Date: 2013-12-23 05:47+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -4560,7 +4560,7 @@ msgstr "Le journal doit avoir un compte de crédit et crédit par défaut"
#: model:ir.actions.act_window,name:account.action_bank_tree
#: model:ir.ui.menu,name:account.menu_action_bank_tree
msgid "Setup your Bank Accounts"
-msgstr "Configurer les compte bancaires"
+msgstr "Configurer les comptes bancaires"
#. module: account
#: xsl:account.transfer:0
diff --git a/addons/hr_payroll/i18n/sl.po b/addons/hr_payroll/i18n/sl.po
index 5294aaef1fc..f9b8a10799c 100644
--- a/addons/hr_payroll/i18n/sl.po
+++ b/addons/hr_payroll/i18n/sl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
-"PO-Revision-Date: 2013-12-07 07:13+0000\n"
+"PO-Revision-Date: 2013-12-22 12:21+0000\n"
"Last-Translator: Darja Zorman \n"
"Language-Team: Slovenian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-12-08 05:46+0000\n"
-"X-Generator: Launchpad (build 16869)\n"
+"X-Launchpad-Export-Date: 2013-12-23 05:47+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: hr_payroll
#: field:hr.payslip.line,condition_select:0
@@ -312,7 +312,7 @@ msgstr "Skupaj delovnih dni"
#. module: hr_payroll
#: constraint:hr.payroll.structure:0
msgid "Error ! You cannot create a recursive Salary Structure."
-msgstr ""
+msgstr "Napaka! Ne morete kreirati rekurzivne plačne strukture."
#. module: hr_payroll
#: help:hr.payslip.line,code:0
@@ -356,7 +356,7 @@ msgstr ""
#: help:hr.payslip.line,condition_range_max:0
#: help:hr.salary.rule,condition_range_max:0
msgid "The maximum amount, applied for this rule."
-msgstr ""
+msgstr "Maksimalni znesek, uporabljen za to pravilo."
#. module: hr_payroll
#: help:hr.payslip.line,condition_python:0
@@ -365,6 +365,8 @@ msgid ""
"Applied this rule for calculation if condition is true. You can specify "
"condition like basic > 1000."
msgstr ""
+"Uporabi to pravilo za izračun, če je pogoj izpolnjen. Lahko določite pogoj "
+"kot: osnova > 1000."
#. module: hr_payroll
#: report:contribution.register.lines:0
@@ -398,7 +400,7 @@ msgstr ""
#. module: hr_payroll
#: view:hr.salary.rule:0
msgid "Search Salary Rule"
-msgstr ""
+msgstr "Išči plačno pravilo"
#. module: hr_payroll
#: field:hr.payslip,employee_id:0
@@ -421,13 +423,13 @@ msgstr "E-pošta"
#. module: hr_payroll
#: view:hr.payslip.run:0
msgid "Search Payslip Batches"
-msgstr ""
+msgstr "Išči pakete kuvert"
#. module: hr_payroll
#: field:hr.payslip.line,amount_percentage_base:0
#: field:hr.salary.rule,amount_percentage_base:0
msgid "Percentage based on"
-msgstr ""
+msgstr "Odstotek temelji na"
#. module: hr_payroll
#: code:addons/hr_payroll/hr_payroll.py:90
@@ -438,7 +440,7 @@ msgstr "%s (kopija)"
#. module: hr_payroll
#: help:hr.config.settings,module_hr_payroll_account:0
msgid "Create journal entries from payslips"
-msgstr ""
+msgstr "Kreiraj postavke dnevnika iz kuvert"
#. module: hr_payroll
#: field:hr.payslip,paid:0
@@ -683,7 +685,7 @@ msgstr "Kategorija"
#. module: hr_payroll
#: view:hr.salary.rule:0
msgid "Company Contribution"
-msgstr ""
+msgstr "Delež podjetja"
#. module: hr_payroll
#: help:hr.payslip.run,credit_note:0
@@ -702,7 +704,7 @@ msgstr ""
#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_structure_list_form
#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_structure_view
msgid "Salary Structures"
-msgstr ""
+msgstr "Struktura plač"
#. module: hr_payroll
#: view:hr.payslip.run:0
@@ -725,7 +727,7 @@ msgstr "Osnutek"
#: report:payslip:0
#: field:payslip.lines.contribution.register,date_from:0
msgid "Date From"
-msgstr ""
+msgstr "Datum od"
#. module: hr_payroll
#: view:hr.payslip.run:0
@@ -795,7 +797,7 @@ msgstr "Aktivno"
#. module: hr_payroll
#: view:hr.salary.rule:0
msgid "Child Rules"
-msgstr ""
+msgstr "Podrejena pravila"
#. module: hr_payroll
#: help:hr.payslip.line,condition_range_min:0
@@ -807,7 +809,7 @@ msgstr ""
#: selection:hr.payslip.line,condition_select:0
#: selection:hr.salary.rule,condition_select:0
msgid "Python Expression"
-msgstr ""
+msgstr "Python izraz"
#. module: hr_payroll
#: report:paylip.details:0
@@ -824,7 +826,7 @@ msgstr "Podjetja"
#: report:paylip.details:0
#: report:payslip:0
msgid "Authorized Signature"
-msgstr ""
+msgstr "Avtoriziran podpis"
#. module: hr_payroll
#: field:hr.payslip,contract_id:0
@@ -845,18 +847,18 @@ msgstr "Za pripravo kuvert(e) morate izbrati zaposlene(ga)."
#: report:paylip.details:0
#: report:payslip:0
msgid "Credit"
-msgstr ""
+msgstr "V dobro"
#. module: hr_payroll
#: field:hr.contract,schedule_pay:0
msgid "Scheduled Pay"
-msgstr ""
+msgstr "Načrtovano plačilo"
#. module: hr_payroll
#: field:hr.payslip.line,condition_python:0
#: field:hr.salary.rule,condition_python:0
msgid "Python Condition"
-msgstr ""
+msgstr "Python pogoj"
#. module: hr_payroll
#: view:hr.contribution.register:0
@@ -948,7 +950,7 @@ msgstr ""
#: view:hr.payslip.line:0
#: model:ir.model,name:hr_payroll.model_hr_payroll_structure
msgid "Salary Structure"
-msgstr ""
+msgstr "Struktura plače"
#. module: hr_payroll
#: field:hr.contribution.register,register_line_ids:0
@@ -984,7 +986,7 @@ msgstr ""
#. module: hr_payroll
#: selection:hr.contract,schedule_pay:0
msgid "Bi-monthly"
-msgstr ""
+msgstr "Dvo-mesečno"
#. module: hr_payroll
#: report:paylip.details:0
@@ -1018,7 +1020,7 @@ msgstr "Tiskanje"
#. module: hr_payroll
#: view:hr.payslip.line:0
msgid "Calculations"
-msgstr ""
+msgstr "Izračun"
#. module: hr_payroll
#: view:hr.payslip:0
@@ -1056,7 +1058,7 @@ msgstr "Opis"
#. module: hr_payroll
#: field:hr.employee,total_wage:0
msgid "Total Basic Salary"
-msgstr ""
+msgstr "Skupaj osnovna plača"
#. module: hr_payroll
#: view:hr.contribution.register:0
@@ -1098,7 +1100,7 @@ msgstr ""
#. module: hr_payroll
#: view:hr.salary.rule.category:0
msgid "Salary Categories"
-msgstr ""
+msgstr "Kategorije plač"
#. module: hr_payroll
#: report:contribution.register.lines:0
@@ -1117,12 +1119,12 @@ msgstr "Ime"
#: help:hr.payslip.line,amount_percentage:0
#: help:hr.salary.rule,amount_percentage:0
msgid "For example, enter 50.0 to apply a percentage of 50%"
-msgstr ""
+msgstr "Npr. vnesite 50.0, kar pomeni 50%"
#. module: hr_payroll
#: view:hr.payroll.structure:0
msgid "Payroll Structures"
-msgstr ""
+msgstr "Struktura plače"
#. module: hr_payroll
#: view:hr.payslip:0
diff --git a/addons/resource/i18n/sl.po b/addons/resource/i18n/sl.po
index 915569f9b14..b15c1872293 100644
--- a/addons/resource/i18n/sl.po
+++ b/addons/resource/i18n/sl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2013-11-11 09:02+0000\n"
+"PO-Revision-Date: 2013-12-22 12:10+0000\n"
"Last-Translator: Darja Zorman \n"
"Language-Team: Slovenian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-21 06:32+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2013-12-23 05:47+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: resource
#: help:resource.calendar.leaves,resource_id:0
@@ -23,16 +23,18 @@ msgid ""
"If empty, this is a generic holiday for the company. If a resource is set, "
"the holiday/leave is only for this resource"
msgstr ""
+"Če je prazno, je privzet dopust za podjetje. Če je vir nastavljen, je "
+"dopust/odsotnost samo za ta vir."
#. module: resource
#: selection:resource.resource,resource_type:0
msgid "Material"
-msgstr ""
+msgstr "Material"
#. module: resource
#: field:resource.resource,resource_type:0
msgid "Resource Type"
-msgstr ""
+msgstr "Vrsta vira"
#. module: resource
#: model:ir.model,name:resource.model_resource_calendar_leaves
@@ -43,12 +45,12 @@ msgstr "Podrobnosti odhoda"
#. module: resource
#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves
msgid "Resources Leaves"
-msgstr ""
+msgstr "Odstotnosti vira"
#. module: resource
#: field:resource.calendar.attendance,dayofweek:0
msgid "Day of Week"
-msgstr ""
+msgstr "Dan v tednu"
#. module: resource
#: model:ir.actions.act_window,help:resource.action_resource_calendar_form
@@ -59,6 +61,11 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Določite delovne ure in urnik, ki se lahko načrtuje za člane "
+"vašega projekta\n"
+"
\n"
+" "
#. module: resource
#: selection:resource.calendar.attendance,dayofweek:0
@@ -79,50 +86,52 @@ msgstr "Nedelja"
#. module: resource
#: field:resource.resource,time_efficiency:0
msgid "Efficiency Factor"
-msgstr ""
+msgstr "Faktor učinkovitosti"
#. module: resource
#: view:resource.resource:0
msgid "Search Resource"
-msgstr ""
+msgstr "Iskanje vira"
#. module: resource
#: view:resource.resource:0
msgid "Type"
-msgstr ""
+msgstr "Vrsta"
#. module: resource
#: model:ir.actions.act_window,name:resource.action_resource_resource_tree
#: view:resource.resource:0
msgid "Resources"
-msgstr ""
+msgstr "Viri"
#. module: resource
#: code:addons/resource/resource.py:455
#, python-format
msgid "Make sure the Working time has been configured with proper week days!"
-msgstr ""
+msgstr "Zagotovite, da bo delovni čas nastavljen s pravimi dnevi v tednu!"
#. module: resource
#: code:addons/resource/resource.py:373
#, python-format
msgid "%s (copy)"
-msgstr ""
+msgstr "%s (kopija)"
#. module: resource
#: view:resource.calendar:0
msgid "Search Working Time"
-msgstr ""
+msgstr "Išči delovni čas"
#. module: resource
#: constraint:resource.calendar.leaves:0
msgid "Error! leave start-date must be lower then leave end-date."
msgstr ""
+"Napaka! Datum pričetka odsotnosti mora biti manjši kot datum končanja "
+"odsotnosti."
#. module: resource
#: model:ir.model,name:resource.model_resource_calendar
msgid "Resource Calendar"
-msgstr ""
+msgstr "Koledar virov"
#. module: resource
#: field:resource.calendar,company_id:0
@@ -162,27 +171,27 @@ msgstr "Datum"
#. module: resource
#: view:resource.calendar.leaves:0
msgid "Search Working Period Leaves"
-msgstr ""
+msgstr "Iskanje odsotnosti v delovnem intervalu"
#. module: resource
#: field:resource.calendar.attendance,date_from:0
msgid "Starting Date"
-msgstr ""
+msgstr "Začetni datum"
#. module: resource
#: field:resource.calendar,manager:0
msgid "Workgroup Manager"
-msgstr ""
+msgstr "Vodja delovne skupine"
#. module: resource
#: field:resource.calendar.leaves,date_to:0
msgid "End Date"
-msgstr ""
+msgstr "Končni datum"
#. module: resource
#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days
msgid "Closing Days"
-msgstr ""
+msgstr "Zaključni dnevi"
#. module: resource
#: model:ir.ui.menu,name:resource.menu_resource_config
@@ -190,7 +199,7 @@ msgstr ""
#: field:resource.calendar.leaves,resource_id:0
#: view:resource.resource:0
msgid "Resource"
-msgstr ""
+msgstr "Vir"
#. module: resource
#: field:resource.calendar,name:0
@@ -213,13 +222,13 @@ msgstr "Delovni čas"
#. module: resource
#: help:resource.calendar.attendance,hour_from:0
msgid "Start and End time of working."
-msgstr ""
+msgstr "Začetni in končni čas dela"
#. module: resource
#: view:resource.calendar.leaves:0
#: view:resource.resource:0
msgid "Working Period"
-msgstr ""
+msgstr "Delovno obdobje"
#. module: resource
#: selection:resource.calendar.attendance,dayofweek:0
@@ -229,7 +238,7 @@ msgstr "Sreda"
#. module: resource
#: model:ir.model,name:resource.model_resource_resource
msgid "Resource Detail"
-msgstr ""
+msgstr "Podrobnost vira"
#. module: resource
#: field:resource.resource,active:0
@@ -242,26 +251,28 @@ msgid ""
"If the active field is set to False, it will allow you to hide the resource "
"record without removing it."
msgstr ""
+"Če je aktivno polje nastavljeno, bo doboljeno skriti zapis vira, ne da bi ga "
+"brisali."
#. module: resource
#: field:resource.calendar.attendance,calendar_id:0
msgid "Resource's Calendar"
-msgstr ""
+msgstr "Koledar virov"
#. module: resource
#: field:resource.calendar.attendance,hour_from:0
msgid "Work from"
-msgstr ""
+msgstr "Dela od"
#. module: resource
#: help:resource.resource,user_id:0
msgid "Related user name for the resource to manage its access."
-msgstr ""
+msgstr "Povezano uporabniško ime za vir za upravljanje njegovega dostopa."
#. module: resource
#: help:resource.resource,calendar_id:0
msgid "Define the schedule of resource"
-msgstr ""
+msgstr "Določite urnik za ta vir"
#. module: resource
#: view:resource.calendar.leaves:0
@@ -271,7 +282,7 @@ msgstr "Začetni datum odhoda"
#. module: resource
#: field:resource.resource,code:0
msgid "Code"
-msgstr ""
+msgstr "Koda"
#. module: resource
#: selection:resource.calendar.attendance,dayofweek:0
@@ -281,12 +292,12 @@ msgstr "Ponedeljek"
#. module: resource
#: field:resource.calendar.attendance,hour_to:0
msgid "Work to"
-msgstr ""
+msgstr "Dela do"
#. module: resource
#: model:ir.model,name:resource.model_resource_calendar_attendance
msgid "Work Detail"
-msgstr ""
+msgstr "Podrobnosti dela"
#. module: resource
#: selection:resource.calendar.attendance,dayofweek:0
@@ -301,12 +312,16 @@ msgid ""
"show a load of 100% for this phase by default, but if we put a efficiency of "
"200%, then his load will only be 50%."
msgstr ""
+"Polje prikazuje učinkovitost vira za zaključek nalog. Npr.: uporaba samo "
+"tega vira na fazi 5 dni s 5 prirejenimi nalogami, bo prikazala 100% "
+"zasedenost za to fazo; če pa vpišemo učinkovitost 200%, bo njegova "
+"zasedenost samo 50%."
#. module: resource
#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
#: model:ir.ui.menu,name:resource.menu_view_resource_calendar_leaves_search
msgid "Resource Leaves"
-msgstr ""
+msgstr "Odsotnosti vira"
#. module: resource
#: model:ir.actions.act_window,help:resource.action_resource_resource_tree
@@ -315,6 +330,9 @@ msgid ""
"in a specific project phase. You can also set their efficiency level and "
"workload based on their weekly working hours."
msgstr ""
+"Viri vam omogočajo kreiranje in upravljanje virov, ki morajo biti vključeni "
+"v specifično projektno fazo. Prav tako lahko nastavite njihovo stopnjo "
+"učinkovitosti in zasedenosti, ki temelji na njihovih tedenskih delovnih urah."
#. module: resource
#: view:resource.resource:0
@@ -325,7 +343,7 @@ msgstr "Neaktivno"
#: code:addons/resource/faces/resource.py:340
#, python-format
msgid "(vacation)"
-msgstr ""
+msgstr "(počitnice)"
#. module: resource
#: code:addons/resource/resource.py:455
@@ -336,17 +354,17 @@ msgstr "Konfiguracijska napaka"
#. module: resource
#: selection:resource.resource,resource_type:0
msgid "Human"
-msgstr ""
+msgstr "Oseba"
#. module: resource
#: view:resource.calendar.leaves:0
msgid "Duration"
-msgstr ""
+msgstr "Trajanje"
#. module: resource
#: field:resource.calendar.leaves,date_from:0
msgid "Start Date"
-msgstr ""
+msgstr "Začetni daum"
#. module: resource
#: selection:resource.calendar.attendance,dayofweek:0
diff --git a/addons/stock/i18n/es_PE.po b/addons/stock/i18n/es_PE.po
index 465024862b5..181f43df41d 100644
--- a/addons/stock/i18n/es_PE.po
+++ b/addons/stock/i18n/es_PE.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
-"PO-Revision-Date: 2013-12-09 19:32+0000\n"
-"Last-Translator: Pepe B. @TelFast Peru Partner \n"
+"PO-Revision-Date: 2013-12-21 04:37+0000\n"
+"Last-Translator: Pepe B. @TelFast Perú \n"
"Language-Team: Spanish (Peru) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-12-11 06:28+0000\n"
-"X-Generator: Launchpad (build 16869)\n"
+"X-Launchpad-Export-Date: 2013-12-22 05:57+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: stock
#: field:stock.inventory.line.split,line_exist_ids:0
@@ -285,7 +285,7 @@ msgstr ""
#: view:board.board:0
#: model:ir.actions.act_window,name:stock.action_stock_incoming_product_delay
msgid "Incoming Products"
-msgstr ""
+msgstr "Productos Entrantes"
#. module: stock
#: view:report.stock.lines.date:0
@@ -2603,7 +2603,7 @@ msgstr ""
#: view:board.board:0
#: model:ir.actions.act_window,name:stock.action_stock_outgoing_product_delay
msgid "Outgoing Products"
-msgstr ""
+msgstr "Entregar Productos"
#. module: stock
#: code:addons/stock/stock.py:2249
diff --git a/addons/survey/i18n/sl.po b/addons/survey/i18n/sl.po
index c168779026c..df7a9fd1661 100644
--- a/addons/survey/i18n/sl.po
+++ b/addons/survey/i18n/sl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2013-11-21 11:45+0000\n"
+"PO-Revision-Date: 2013-12-22 12:26+0000\n"
"Last-Translator: Darja Zorman \n"
"Language-Team: Slovenian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-22 06:03+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2013-12-23 05:47+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: survey
#: view:survey.response.line:0
@@ -1403,42 +1403,44 @@ msgid ""
"#Required Answer you entered is greater than the number of answer. Please "
"use a number that is smaller than %d."
msgstr ""
+"#zahtevano odgovor, ki ste ga vnesli, je večji kot število odgovorov. "
+"Prosimo, vnesite število, manjše od %d."
#. module: survey
#: help:survey,max_response_limit:0
msgid "Set to one if survey is answerable only once"
-msgstr ""
+msgstr "Nastavite na ena, če se na anketo odgovarja le enkrat."
#. module: survey
#: selection:survey.response,state:0
msgid "Finished "
-msgstr ""
+msgstr "Končano "
#. module: survey
#: model:ir.model,name:survey.model_survey_question_column_heading
msgid "Survey Question Column Heading"
-msgstr ""
+msgstr "Naziv stolpca anketnega vprašanja"
#. module: survey
#: field:survey.answer,average:0
msgid "#Avg"
-msgstr ""
+msgstr "#Povprečno"
#. module: survey
#: selection:survey.question,type:0
msgid "Matrix of Choices (Multiple Answers Per Row)"
-msgstr ""
+msgstr "Matrika možnosti (več odgovorov na vrstico)"
#. module: survey
#: model:ir.actions.act_window,name:survey.action_view_survey_name
msgid "Give Survey Answer"
-msgstr ""
+msgstr "Podajte anketni odgovor"
#. module: survey
#: help:survey.browse.answer,response_id:0
msgid ""
"If this field is empty, all answers of the selected survey will be print."
-msgstr ""
+msgstr "Če je to polje prazno, bodo natisnjeni vsi odgovori izbrane ankete"
#. module: survey
#: selection:survey.response.line,state:0
@@ -1448,28 +1450,28 @@ msgstr "Odgovorjeno"
#. module: survey
#: field:survey,send_response:0
msgid "Email Notification on Answer"
-msgstr ""
+msgstr "Elektronsko sporočilo na odgovor"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:445
#, python-format
msgid "Complete Survey Answer"
-msgstr ""
+msgstr "Zaključi odgovor ankete"
#. module: survey
#: selection:survey.question,type:0
msgid "Comment/Essay Box"
-msgstr ""
+msgstr "Polje za komentar"
#. module: survey
#: field:survey.answer,type:0
msgid "Type of Answer"
-msgstr ""
+msgstr "Tip odgovora"
#. module: survey
#: field:survey.question,required_type:0
msgid "Respondent must answer"
-msgstr ""
+msgstr "Pozvani mora odgovoriti"
#. module: survey
#: model:ir.actions.act_window,name:survey.action_view_survey_send_invitation
@@ -1481,22 +1483,22 @@ msgstr "Pošlji vabilo"
#: code:addons/survey/wizard/survey_selection.py:80
#, python-format
msgid "You cannot give response for this survey more than %s times."
-msgstr ""
+msgstr "Ne morete odgovoriti na to anketo več kot %s krat."
#. module: survey
#: view:survey.question:0
msgid "Search Question"
-msgstr ""
+msgstr "Iskanje vprašanja"
#. module: survey
#: selection:survey.question,type:0
msgid "Single Textbox"
-msgstr ""
+msgstr "Enostaven tekstovni okvirček"
#. module: survey
#: model:ir.actions.act_window,name:survey.action_survey_question_form
msgid "Survey Questions"
-msgstr ""
+msgstr "Vprašanje ankete"
#. module: survey
#: field:survey,note:0
@@ -1522,37 +1524,37 @@ msgstr "survey.send.invitation.log"
#: selection:survey.print,orientation:0
#: selection:survey.print.answer,orientation:0
msgid "Portrait(Vertical)"
-msgstr ""
+msgstr "Pokončno (vertikalno)"
#. module: survey
#: code:addons/survey/wizard/survey_send_invitation.py:67
#: code:addons/survey/wizard/survey_send_invitation.py:68
#, python-format
msgid "Invitation for %s"
-msgstr ""
+msgstr "Povabilo za %s"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
msgid "Must Be Specific Length"
-msgstr ""
+msgstr "Mora biti določene dolžine"
#. module: survey
#: model:survey.type,name:survey.survey_type3
msgid "Supplier Selection"
-msgstr ""
+msgstr "Izbira dobavitelja"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:992
#, python-format
msgid "You cannot select same answer more than one time.'"
-msgstr ""
+msgstr "Ne morete izbrati istega odgovora več kot enkrat."
#. module: survey
#: code:addons/survey/survey.py:685
#, python-format
msgid "You cannot duplicate the resource!"
-msgstr ""
+msgstr "Ne morete podvojiti vira!"
#. module: survey
#: code:addons/survey/survey.py:523
@@ -1561,22 +1563,24 @@ msgid ""
"Minimum Required Answer you entered is greater than the number of answer. "
"Please use a number that is smaller than %d."
msgstr ""
+"Minimalni zahtevan odgovor, ki ste ga vnesli, je večji kot številka "
+"odgovora. Prosimo, uporabite število, ki je manjše od %d."
#. module: survey
#: view:survey:0
msgid "All Open Survey"
-msgstr ""
+msgstr "Vse odprte ankete"
#. module: survey
#: model:ir.actions.report.xml,name:survey.survey_browse_response
#: field:survey.browse.answer,response_id:0
msgid "Survey Answers"
-msgstr ""
+msgstr "Anketni odgovori"
#. module: survey
#: model:ir.ui.menu,name:survey.menu_print_survey_answer
msgid "Surveys Answers"
-msgstr ""
+msgstr "Odgovori anket"
#. module: survey
#: model:ir.actions.act_window,name:survey.act_survey_pages
@@ -1591,12 +1595,14 @@ msgid ""
"than the number of answer. Please use a "
"number that is smaller than %d."
msgstr ""
+"#zahtevan odgovor, ki ste ga vnesli, je večji kot število odgovorov. "
+"Prosimo, uporabite število, manjše od %d."
#. module: survey
#: selection:survey.print,paper_size:0
#: selection:survey.print.answer,paper_size:0
msgid "Legal (8.5\" x 14\")"
-msgstr ""
+msgstr "Legal (8.5\" x 14\")"
#. module: survey
#: field:survey.type,name:0
@@ -1606,17 +1612,17 @@ msgstr "Ime"
#. module: survey
#: view:survey.page:0
msgid "#Questions"
-msgstr ""
+msgstr "#vprašanj"
#. module: survey
#: field:survey.question,numeric_required_sum:0
msgid "Sum of all choices"
-msgstr ""
+msgstr "Vsota vseh izbir"
#. module: survey
#: view:survey.request:0
msgid "Request"
-msgstr ""
+msgstr "Zahteva"
#. module: survey
#: model:ir.model,name:survey.model_survey_response
@@ -1690,6 +1696,8 @@ msgid ""
"greater than the number of answer. Please "
"use a number that is smaller than %d."
msgstr ""
+"Minimalni zahtevan odgovor, ki ste ga vnesli, je večji kot število "
+"odgovorov. Prosimo, uporabite število, manjše od %d."
#. module: survey
#: field:survey.answer,menu_choice:0
@@ -1707,12 +1715,12 @@ msgstr "ID"
msgid ""
"Maximum Required Answer is greater than "
"Minimum Required Answer"
-msgstr ""
+msgstr "Maksimalni zahtevan odgovor je večji kot minimalni zahtevan odgovor."
#. module: survey
#: view:survey.send.invitation.log:0
msgid "User creation"
-msgstr ""
+msgstr "Kreiranje uporabnika"
#. module: survey
#: selection:survey.question,required_type:0
@@ -1723,17 +1731,17 @@ msgstr "Vse"
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
msgid "Must Be An Email Address"
-msgstr ""
+msgstr "Mora biti elektronski naslov"
#. module: survey
#: selection:survey.question,type:0
msgid "Multiple Choice (Only One Answer)"
-msgstr ""
+msgstr "Več izbir (Samo en odgovor)"
#. module: survey
#: field:survey.answer,in_visible_answer_type:0
msgid "Is Answer Type Invisible??"
-msgstr ""
+msgstr "Ali tip odgovora ni viden?"
#. module: survey
#: model:ir.model,name:survey.model_survey_print_answer
@@ -1763,7 +1771,7 @@ msgstr "ali"
#. module: survey
#: field:survey,title:0
msgid "Survey Title"
-msgstr ""
+msgstr "Naziv ankete"
#. module: survey
#: field:survey.question.column.heading,rating_weight:0
@@ -1792,17 +1800,17 @@ msgstr "Naziv stolpca"
#: model:ir.ui.menu,name:survey.menu_survey_page_form1
#: view:survey.page:0
msgid "Survey Pages"
-msgstr ""
+msgstr "Strani ankete"
#. module: survey
#: field:survey.question,type:0
msgid "Question Type"
-msgstr ""
+msgstr "Tip vprašanja"
#. module: survey
#: field:survey.question,in_visible_answer_type:0
msgid "Is Answer Type Invisible?"
-msgstr ""
+msgstr "Ali je tip neviden?"
#. module: survey
#: selection:survey.question,type:0
@@ -1814,20 +1822,20 @@ msgstr "Razpredelnica"
#: code:addons/survey/wizard/survey_answer.py:117
#, python-format
msgid "You cannot answer because the survey is not open."
-msgstr ""
+msgstr "Ne morete odgovarjati, ker anketa ni odprta."
#. module: survey
#: field:survey.question,comment_minimum_date:0
#: field:survey.question,validation_minimum_date:0
msgid "Minimum date"
-msgstr ""
+msgstr "Minimalni datum"
#. module: survey
#: field:survey,response_user:0
msgid "Maximum Answer per User"
-msgstr ""
+msgstr "Maksimalno odgovorov po uporabniku"
#. module: survey
#: field:survey.name.wiz,page:0
msgid "Page Position"
-msgstr ""
+msgstr "Pozicija strani"
From 2c9ef5b3d5c1b5fa586b6a3a9d027f8220e4c1e6 Mon Sep 17 00:00:00 2001
From: Rifakat
Date: Mon, 23 Dec 2013 15:48:41 +0530
Subject: [PATCH 75/81] [FIX] hr_payroll: put a check for the structure used in
the contract. When any structure is already assigned into contract and that
is deleted, it will affet the Payslips which were already created and will
have [False] value.
bzr revid: rha@tinyerp.com-20131223101841-6fbwfm90gn7sj17m
---
addons/hr_payroll/hr_payroll.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py
index 5fd74ff9fe0..95ae878e40f 100644
--- a/addons/hr_payroll/hr_payroll.py
+++ b/addons/hr_payroll/hr_payroll.py
@@ -146,7 +146,9 @@ class hr_contract(osv.osv):
@return: the structures linked to the given contracts, ordered by hierachy (parent=False first, then first level children and so on) and without duplicata
"""
all_structures = []
- structure_ids = [contract.struct_id.id for contract in self.browse(cr, uid, contract_ids, context=context)]
+ structure_ids = [contract.struct_id.id for contract in self.browse(cr, uid, contract_ids, context=context) if contract.struct_id]
+ if not structure_ids:
+ return []
return list(set(self.pool.get('hr.payroll.structure')._get_parent_structure(cr, uid, structure_ids, context=context)))
hr_contract()
From 36846db2c3d172ceacf1890c40e3040900f93771 Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Mon, 23 Dec 2013 16:46:31 +0100
Subject: [PATCH 76/81] [FIX] account_check_writing: display real currency name
on check print
Instead of 'Euro' hardcoded.
As the currency complete name is not available in res.curreny model, exceptions are made for currencies EUR, USD and BRL, the mosts used currencies for checks (+75% of cases)
bzr revid: dle@openerp.com-20131223154631-21oenwn8mxszyo5t
---
addons/account_check_writing/account_voucher.py | 14 +++++++++++++-
addons/account_check_writing/report/check_print.py | 1 -
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/addons/account_check_writing/account_voucher.py b/addons/account_check_writing/account_voucher.py
index 7a5d12f5cff..f7b35dccacc 100644
--- a/addons/account_check_writing/account_voucher.py
+++ b/addons/account_check_writing/account_voucher.py
@@ -49,9 +49,21 @@ class account_voucher(osv.osv):
if 'value' in default:
amount = 'amount' in default['value'] and default['value']['amount'] or amount
+ # Currency complete name is not available in res.currency model
+ # Exceptions done here (EUR, USD, BRL) cover 75% of cases
+ # For other currencies, display the currency code
+ currency = self.pool['res.currency'].browse(cr, uid, currency_id, context=context)
+ if currency.name.upper() == 'EUR':
+ currency_name = 'Euro'
+ elif currency.name.upper() == 'USD':
+ currency_name = 'Dollars'
+ elif currency.name.upper() == 'BRL':
+ currency_name = 'reais'
+ else:
+ currency_name = currency.name
#TODO : generic amount_to_text is not ready yet, otherwise language (and country) and currency can be passed
#amount_in_word = amount_to_text(amount, context=context)
- amount_in_word = amount_to_text(amount)
+ amount_in_word = amount_to_text(amount, currency=currency_name)
default['value'].update({'amount_in_word':amount_in_word})
if journal_id:
allow_check_writing = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context).allow_check_writing
diff --git a/addons/account_check_writing/report/check_print.py b/addons/account_check_writing/report/check_print.py
index 57360025623..add79fcc35a 100644
--- a/addons/account_check_writing/report/check_print.py
+++ b/addons/account_check_writing/report/check_print.py
@@ -34,7 +34,6 @@ class report_print_check(report_sxw.rml_parse):
'fill_stars' : self.fill_stars,
})
def fill_stars(self, amount):
- amount = amount.replace('Dollars','')
if len(amount) < 100:
stars = 100 - len(amount)
return ' '.join([amount,'*'*stars])
From 87aae0efca04e10c923bf778d0a20ffc94da5686 Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Tue, 24 Dec 2013 05:52:13 +0000
Subject: [PATCH 77/81] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20131224055213-dm6b0zx4e0fn18ex
---
addons/account/i18n/ja.po | 14 +++++++-----
addons/base_gengo/i18n/sl.po | 44 ++++++++++++++++++++----------------
addons/crm_claim/i18n/hr.po | 14 +++++++-----
3 files changed, 40 insertions(+), 32 deletions(-)
diff --git a/addons/account/i18n/ja.po b/addons/account/i18n/ja.po
index a1fde32a549..af0e1b1bc6d 100644
--- a/addons/account/i18n/ja.po
+++ b/addons/account/i18n/ja.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-14 22:29+0000\n"
-"PO-Revision-Date: 2013-11-24 10:34+0000\n"
-"Last-Translator: Yoshi Tashiro \n"
+"PO-Revision-Date: 2013-12-23 17:35+0000\n"
+"Last-Translator: hiro TAKADA \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-25 06:00+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2013-12-24 05:52+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -5526,7 +5526,7 @@ msgstr "貸借対照表"
#: code:addons/account/account.py:188
#, python-format
msgid "Profit & Loss (Income account)"
-msgstr "損益(損益勘定)"
+msgstr "損益計算書(収益勘定)"
#. module: account
#: field:account.journal,allow_date:0
@@ -8693,7 +8693,7 @@ msgstr ""
#. module: account
#: field:account.account.type,report_type:0
msgid "P&L / BS Category"
-msgstr "損益計算書 / 貸借対照表分類"
+msgstr "損益計算書 / 貸借対照表区分"
#. module: account
#: view:account.automatic.reconcile:0
@@ -9176,6 +9176,8 @@ msgid ""
"You cannot select an account type with a deferral method different of "
"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"."
msgstr ""
+"設定エラー!\n"
+"内部タイプが「売掛金/買掛金」のアカウントは「未消込」以外の繰延方法でアカウントタイプを選択できません。"
#. module: account
#: field:account.config.settings,has_fiscal_year:0
diff --git a/addons/base_gengo/i18n/sl.po b/addons/base_gengo/i18n/sl.po
index 57655fa36db..c8ac7601055 100644
--- a/addons/base_gengo/i18n/sl.po
+++ b/addons/base_gengo/i18n/sl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
-"PO-Revision-Date: 2013-11-09 10:27+0000\n"
-"Last-Translator: Darja Zorman \n"
+"PO-Revision-Date: 2013-12-23 14:46+0000\n"
+"Last-Translator: Dušan Laznik (Mentis) \n"
"Language-Team: Slovenian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-21 06:02+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2013-12-24 05:52+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
#. module: base_gengo
#: view:res.company:0
@@ -47,12 +47,12 @@ msgstr "Gengo privatni ključ"
#: constraint:ir.translation:0
msgid ""
"The Gengo translation service selected is not supported for this language."
-msgstr ""
+msgstr "Genko ni podprt za ta jezik"
#. module: base_gengo
#: view:res.company:0
msgid "Add Gengo login Public Key..."
-msgstr ""
+msgstr "Dodaj Genko javni ključ"
#. module: base_gengo
#: model:ir.model,name:base_gengo.model_base_gengo_translations
@@ -62,7 +62,7 @@ msgstr "base.gengo.translations"
#. module: base_gengo
#: view:ir.translation:0
msgid "Gengo Comments & Activity..."
-msgstr ""
+msgstr "Genko komentarji&aktivnosti"
#. module: base_gengo
#: help:res.company,gengo_auto_approve:0
@@ -91,7 +91,7 @@ msgstr "Gengo Sync Translation (Response)"
msgid ""
"Gengo `Public Key` or `Private Key` are missing. Enter your Gengo "
"authentication parameters under `Settings > Companies > Gengo Parameters`."
-msgstr ""
+msgstr "Parameter"
#. module: base_gengo
#: selection:ir.translation,gengo_translation:0
@@ -101,7 +101,7 @@ msgstr "Strojno prevajanje"
#. module: base_gengo
#: view:res.company:0
msgid "Add Gengo login Private Key..."
-msgstr ""
+msgstr "Dodaj Genko privatni ključ"
#. module: base_gengo
#: code:addons/base_gengo/wizard/base_gengo_translations.py:155
@@ -112,11 +112,15 @@ msgid ""
"--\n"
" Commented on %s by %s."
msgstr ""
+"%s\n"
+"\n"
+"--\n"
+" Komentar na %s od %s."
#. module: base_gengo
#: field:ir.translation,gengo_translation:0
msgid "Gengo Translation Service Level"
-msgstr ""
+msgstr "Genko - nivo"
#. module: base_gengo
#: view:res.company:0
@@ -143,7 +147,7 @@ msgstr "Ponovni zagon pošiljanja"
#. module: base_gengo
#: view:ir.translation:0
msgid "To Approve In Gengo"
-msgstr ""
+msgstr "Potrditev v Genko"
#. module: base_gengo
#: view:res.company:0
@@ -174,20 +178,20 @@ msgstr "Prevodi"
#. module: base_gengo
#: field:res.company,gengo_auto_approve:0
msgid "Auto Approve Translation ?"
-msgstr ""
+msgstr "Prevod samodejno potrjen ?"
#. module: base_gengo
#: model:ir.actions.act_window,name:base_gengo.action_wizard_base_gengo_translations
#: model:ir.ui.menu,name:base_gengo.menu_action_wizard_base_gengo_translations
msgid "Gengo: Manual Request of Translation"
-msgstr ""
+msgstr "Gengo:zahtevek za prevod"
#. module: base_gengo
#: code:addons/base_gengo/ir_translation.py:62
#: code:addons/base_gengo/wizard/base_gengo_translations.py:109
#, python-format
msgid "Gengo Authentication Error"
-msgstr ""
+msgstr "Gengo napaka avtorizacije"
#. module: base_gengo
#: model:ir.model,name:base_gengo.model_res_company
@@ -213,7 +217,7 @@ msgstr ""
#. module: base_gengo
#: view:res.company:0
msgid "Gengo Parameters"
-msgstr ""
+msgstr "Gengo- Parametri"
#. module: base_gengo
#: view:base.gengo.translations:0
@@ -223,7 +227,7 @@ msgstr "Pošlji"
#. module: base_gengo
#: selection:ir.translation,gengo_translation:0
msgid "Ultra"
-msgstr ""
+msgstr "Ultra"
#. module: base_gengo
#: model:ir.model,name:base_gengo.model_ir_translation
@@ -233,17 +237,17 @@ msgstr "ir.translation"
#. module: base_gengo
#: view:ir.translation:0
msgid "Gengo Translation Service"
-msgstr ""
+msgstr "Gengo - Prevajanje"
#. module: base_gengo
#: selection:ir.translation,gengo_translation:0
msgid "Pro"
-msgstr ""
+msgstr "Pro"
#. module: base_gengo
#: view:base.gengo.translations:0
msgid "Gengo Request Form"
-msgstr ""
+msgstr "Gengo obrazec zahtevka"
#. module: base_gengo
#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
@@ -256,7 +260,7 @@ msgstr "Opozorilo"
msgid ""
"This comment will be automatically be enclosed in each an every request sent "
"to Gengo"
-msgstr ""
+msgstr "Ta komentar bo dodan vsakemu zahtevku"
#. module: base_gengo
#: view:base.gengo.translations:0
diff --git a/addons/crm_claim/i18n/hr.po b/addons/crm_claim/i18n/hr.po
index c4d79ced14d..0c14864345a 100644
--- a/addons/crm_claim/i18n/hr.po
+++ b/addons/crm_claim/i18n/hr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-12-23 13:03+0000\n"
+"Last-Translator: Marko Carevic \n"
"Language-Team: Croatian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-21 06:05+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2013-12-24 05:52+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
#. module: crm_claim
#: help:crm.claim.stage,fold:0
@@ -23,6 +23,8 @@ msgid ""
"This stage is not visible, for example in status bar or kanban view, when "
"there are no records in that stage to display."
msgstr ""
+"Ova faza nije vidljiva, na primjer u statusnoj liniji ili kanban pogledu, "
+"kada nema zapisa u toj fazi za prikaz."
#. module: crm_claim
#: field:crm.claim.report,nbr:0
@@ -65,7 +67,7 @@ msgstr "Odgodi zatvaranje"
#. module: crm_claim
#: field:crm.claim,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "Nepročitane poruke"
#. module: crm_claim
#: field:crm.claim,resolution:0
@@ -100,7 +102,7 @@ msgstr "#Zahtjeva"
#. module: crm_claim
#: field:crm.claim.stage,name:0
msgid "Stage Name"
-msgstr ""
+msgstr "Naziv faze"
#. module: crm_claim
#: view:crm.claim.report:0
From d1b4aa974d28cd919dd3675b62bc61077e02de4b Mon Sep 17 00:00:00 2001
From: Denis Ledoux
Date: Tue, 24 Dec 2013 11:35:35 +0100
Subject: [PATCH 78/81] [FIX] account_voucher: computed writeoff and invoices
selected were not right on partial invoice payment in account voucher wizard.
Due to the algorithm which did not handle the fact that an invoice could have several move lines
bzr revid: dle@openerp.com-20131224103535-rhtje7dnq1ie7jtb
---
addons/account_voucher/account_voucher.py | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index ef2b861bd4e..e4aa535083c 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -755,7 +755,7 @@ class account_voucher(osv.osv):
ids = context['move_line_ids']
invoice_id = context.get('invoice_id', False)
company_currency = journal.company_id.currency_id.id
- move_line_found = False
+ move_lines_found = []
#order the lines by most old first
ids.reverse()
@@ -770,21 +770,20 @@ class account_voucher(osv.osv):
if line.invoice.id == invoice_id:
#if the invoice linked to the voucher line is equal to the invoice_id in context
#then we assign the amount on that line, whatever the other voucher lines
- move_line_found = line.id
- break
+ move_lines_found.append(line.id)
elif currency_id == company_currency:
#otherwise treatments is the same but with other field names
if line.amount_residual == price:
#if the amount residual is equal the amount voucher, we assign it to that voucher
#line, whatever the other voucher lines
- move_line_found = line.id
+ move_lines_found.append(line.id)
break
#otherwise we will split the voucher amount on each line (by most old first)
total_credit += line.credit or 0.0
total_debit += line.debit or 0.0
elif currency_id == line.currency_id.id:
if line.amount_residual_currency == price:
- move_line_found = line.id
+ move_lines_found.append(line.id)
break
total_credit += line.credit and line.amount_currency or 0.0
total_debit += line.debit and line.amount_currency or 0.0
@@ -809,15 +808,16 @@ class account_voucher(osv.osv):
'move_line_id':line.id,
'account_id':line.account_id.id,
'amount_original': amount_original,
- 'amount': (move_line_found == line.id) and min(abs(price), amount_unreconciled) or 0.0,
+ 'amount': (line.id in move_lines_found) and min(abs(price), amount_unreconciled) or 0.0,
'date_original':line.date,
'date_due':line.date_maturity,
'amount_unreconciled': amount_unreconciled,
'currency_id': line_currency_id,
}
+ price -= rs['amount']
#in case a corresponding move_line hasn't been found, we now try to assign the voucher amount
#on existing invoices: we split voucher amount by most old first, but only for lines in the same currency
- if not move_line_found:
+ if not move_lines_found:
if currency_id == line_currency_id:
if line.credit:
amount = min(amount_unreconciled, abs(total_debit))
From 0c048780710dabb7b19e6eda659cc8294238d01b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Mon, 23 Dec 2013 10:20:57 +0100
Subject: [PATCH 79/81] [REV] document: reverted a change in spacingf to lessen
the diff
bzr revid: tde@openerp.com-20131223092057-drrvt9w12r5uwrn4
---
addons/document/document.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/document/document.py b/addons/document/document.py
index ea63f495902..eb51ad5ac57 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -1035,7 +1035,7 @@ class node_dir(node_database):
print "Cannot eval %s." % dfld.expr
print e
pass
-
+
def __eq__(self, other):
if type(self) != type(other):
return False
From c5148a640c2b7e29bece920a3ccee49b1fe8551c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Mon, 23 Dec 2013 10:28:19 +0100
Subject: [PATCH 80/81] [IMP] hr_recruitment: improved template + xml_id of
templates for interest / refuse
bzr revid: tde@openerp.com-20131223092819-nxiqqy21wd8f2wk8
---
addons/hr_recruitment/hr_recruitment_data.xml | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index 59d1589e7ff..72337ac31af 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -18,7 +18,7 @@
-
+ Application refusedApplication refused${object.email_from}
@@ -26,7 +26,7 @@
${object.partner_id and object.partner_id.lang or ''}
- Dear ${object.partner_name},
+ Dear ${object.partner_name or 'applicant'},
We thank you for your interest in our company and for your application.
Unfortunately, your profile does not match with our needs or our recruitment
campaign has reached its term.
@@ -36,7 +36,7 @@
${object.user_id and object.user_id.signature or ''}]]>
-
+ Application approvedApplication approved${object.email_from}
@@ -44,7 +44,7 @@
${object.partner_id and object.partner_id.lang or ''}
- Dear ${object.partner_name},
+ Dear ${object.partner_name or 'applicant'},
Congrats! Your resume's got our interest!
I will call you as soon as possible to make a 10 minutes phone interview and plan a first meeting.
If we can’t reach you or if you miss our call, feel free to reach me back on the number 001 312 349 3030
@@ -95,7 +95,7 @@
First Interview
-
+ 2
@@ -114,7 +114,7 @@
Refused6
-
+
From b9e8df4a436745290b95086f381da160144e42e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Mon, 23 Dec 2013 10:28:31 +0100
Subject: [PATCH 81/81] [DOC] hr_recruitment: added changelog about template_id
field
bzr revid: tde@openerp.com-20131223092831-lg6j9as0go1r2g7e
---
addons/hr_recruitment/doc/changelog.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/addons/hr_recruitment/doc/changelog.rst b/addons/hr_recruitment/doc/changelog.rst
index 404b94ee6d1..7cfce3f677d 100644
--- a/addons/hr_recruitment/doc/changelog.rst
+++ b/addons/hr_recruitment/doc/changelog.rst
@@ -3,6 +3,13 @@
Changelog
=========
+`trunk (saas-3)`
+----------------
+
+- ``hr.recruitment.stage``: added template_id field. If an email template is linked
+ to the stage, it is used to render and post a message on the applicant. This
+ allows for example to have template for accepted or refused applicants.
+
`trunk (saas-2)`
----------------