From 76a1fc90e9444af66eaa9efe536fa83d0cfea0e2 Mon Sep 17 00:00:00 2001 From: "Nimesh (Open ERP)" Date: Mon, 24 Sep 2012 13:03:47 +0530 Subject: [PATCH 01/15] [ADD] followers of the project are auto follower of task bzr revid: nco@tinyerp.com-20120924073347-dotwb5mifv4r7ap6 --- addons/project/project.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/project/project.py b/addons/project/project.py index f15656905ca..ae21d51a273 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -1100,6 +1100,13 @@ class task(base_stage, osv.osv): def create(self, cr, uid, vals, context=None): task_id = super(task, self).create(cr, uid, vals, context=context) + project_obj = self.pool.get("project.project") + project_id = self.browse(cr, uid, task_id, context=context).project_id + print "project_id" + if project_id: + follower_ids = project_obj.browse(cr, uid, project_id.id, context=context).message_follower_ids + followers = [follower.id for follower in follower_ids] + self.message_subscribe(cr, uid, task_id, followers, context=context) self._store_history(cr, uid, [task_id], context=context) self.create_send_note(cr, uid, [task_id], context=context) return task_id From 380b9040c509cd43d1e081de1ae566ab09dda27c Mon Sep 17 00:00:00 2001 From: "Nimesh (Open ERP)" Date: Mon, 24 Sep 2012 14:14:56 +0530 Subject: [PATCH 02/15] [ADD] followers of the project are auto follower of issue bzr revid: nco@tinyerp.com-20120924084456-5avy6a5nf1x32uwr --- addons/project/project.py | 1 - addons/project_issue/project_issue.py | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/project/project.py b/addons/project/project.py index ae21d51a273..30f706d69d3 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -1102,7 +1102,6 @@ class task(base_stage, osv.osv): task_id = super(task, self).create(cr, uid, vals, context=context) project_obj = self.pool.get("project.project") project_id = self.browse(cr, uid, task_id, context=context).project_id - print "project_id" if project_id: follower_ids = project_obj.browse(cr, uid, project_id.id, context=context).message_follower_ids followers = [follower.id for follower in follower_ids] diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 6121acbd607..27d1d9d0a15 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -381,6 +381,11 @@ class project_issue(base_stage, osv.osv): def create(self, cr, uid, vals, context=None): obj_id = super(project_issue, self).create(cr, uid, vals, context=context) + project_obj = self.pool.get("project.project") + project_id = self.browse(cr, uid, obj_id, context=context).project_id + follower_ids = project_obj.browse(cr, uid, project_id.id, context=context).message_follower_ids + followers = [follower.id for follower in follower_ids] + self.message_subscribe(cr, uid, obj_id, followers, context=context) self.create_send_note(cr, uid, [obj_id], context=context) return obj_id From e8cf471e19e372fdfcfe77e0706ee896e8b1fee8 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Mon, 24 Sep 2012 16:08:12 +0530 Subject: [PATCH 03/15] [IMP]: Manager should able to follow his employee requests bzr revid: atp@tinyerp.com-20120924103812-eg1nflvk68cble4m --- addons/hr_evaluation/hr_evaluation.py | 7 +++++-- addons/hr_evaluation/hr_evaluation_view.xml | 4 ++++ addons/hr_expense/hr_expense.py | 3 +++ addons/hr_holidays/hr_holidays.py | 2 +- addons/hr_timesheet_sheet/hr_timesheet_sheet.py | 3 +++ addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml | 4 ++++ 6 files changed, 20 insertions(+), 3 deletions(-) diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py index 3508dc36d49..a40b21087f9 100644 --- a/addons/hr_evaluation/hr_evaluation.py +++ b/addons/hr_evaluation/hr_evaluation.py @@ -141,6 +141,7 @@ hr_employee() class hr_evaluation(osv.osv): _name = "hr_evaluation.evaluation" + _inherit = "mail.thread" _description = "Employee Appraisal" _rec_name = 'employee_id' _columns = { @@ -242,8 +243,10 @@ class hr_evaluation(osv.osv): def button_final_validation(self, cr, uid, ids, context=None): request_obj = self.pool.get('hr.evaluation.interview') self.write(cr, uid, ids, {'state':'progress'}, context=context) - for id in self.browse(cr, uid, ids, context=context): - if len(id.survey_request_ids) != len(request_obj.search(cr, uid, [('evaluation_id', '=', id.id),('state', 'in', ['done','cancel'])], context=context)): + for evaluation in self.browse(cr, uid, ids, context=context): + if evaluation.employee_id and evaluation.employee_id.parent_id and evaluation.employee_id.parent_id.user_id: + self.message_subscribe(cr, uid, [evaluation.id], [evaluation.employee_id.parent_id.user_id.id], context=context) + if len(evaluation.survey_request_ids) != len(request_obj.search(cr, uid, [('evaluation_id', '=', evaluation.id),('state', 'in', ['done','cancel'])], context=context)): raise osv.except_osv(_('Warning!'),_("You cannot change state, because some appraisal(s) are in waiting answer or draft state.")) return True diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml index 29d68d7a12c..8d51b178e6b 100644 --- a/addons/hr_evaluation/hr_evaluation_view.xml +++ b/addons/hr_evaluation/hr_evaluation_view.xml @@ -196,6 +196,10 @@ +
+ + +
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index 83f986e59cc..a46f2250b5c 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -118,6 +118,9 @@ class hr_expense_expense(osv.osv): return {'value': {'department_id': department_id, 'company_id': company_id}} def expense_confirm(self, cr, uid, ids, *args): + for expense in self.browse(cr, uid, ids, context=context): + if expense.employee_id and expense.employee_id.parent_id and expense.employee_id.parent_id.user_id: + self.message_subscribe(cr, uid, [expense.id], [expense.employee_id.parent_id.user_id.id], context=context) self.write(cr, uid, ids, { 'state':'confirm', 'date_confirm': time.strftime('%Y-%m-%d') diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 759170224bd..770552b0573 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -303,7 +303,7 @@ class hr_holidays(osv.osv): self.check_holidays(cr, uid, ids, context=context) for record in self.browse(cr, uid, ids, context=context): if record.employee_id and record.employee_id.parent_id and record.employee_id.parent_id.user_id: - self.message_subscribe(cr, uid, [record.id], user_ids=[record.employee_id.parent_id.user_id.id], context=context) + self.message_subscribe(cr, uid, [record.id], [record.employee_id.parent_id.user_id.id], context=context) self.holidays_confirm_notificate(cr, uid, ids, context=context) return self.write(cr, uid, ids, {'state':'confirm'}) diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py index fcdbfda0667..3e7d7127b51 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py @@ -103,6 +103,7 @@ class one2many_mod(fields.one2many): class hr_timesheet_sheet(osv.osv): _name = "hr_timesheet_sheet.sheet" + _inherit = "mail.thread" _table = 'hr_timesheet_sheet_sheet' _order = "id desc" _description="Timesheet" @@ -265,6 +266,8 @@ class hr_timesheet_sheet(osv.osv): def button_confirm(self, cr, uid, ids, context=None): for sheet in self.browse(cr, uid, ids, context=context): + if sheet.employee_id and sheet.employee_id.parent_id and sheet.employee_id.parent_id.user_id: + self.message_subscribe(cr, uid, [sheet.id], [sheet.employee_id.parent_id.user_id.id], context=context) self.check_employee_attendance_state(cr, uid, sheet.id, context=context) di = sheet.user_id.company_id.timesheet_max_difference if (abs(sheet.total_difference) < di) or not di: diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml index 6c92e28564e..a554776f099 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml @@ -142,6 +142,10 @@ +
+ + +
From 771936b8360d4f6e290a5bb229848c996c03d0aa Mon Sep 17 00:00:00 2001 From: "Jalpesh Patel (OpenERP)" Date: Mon, 24 Sep 2012 16:34:09 +0530 Subject: [PATCH 04/15] [IMP]sales auto followe bzr revid: pja@tinyerp.com-20120924110409-muixiwuv5u9fkl62 --- addons/crm/crm.py | 1 + addons/crm/crm_lead.py | 3 +++ addons/crm/crm_view.xml | 4 ++++ addons/sale/sale.py | 4 ++++ addons/sale_crm/sale_crm.py | 10 ++++++++++ 5 files changed, 22 insertions(+) diff --git a/addons/crm/crm.py b/addons/crm/crm.py index 330bbb1fc9b..162361a8c0c 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -102,6 +102,7 @@ class crm_case_section(osv.osv): """ Model for sales teams. """ _name = "crm.case.section" _inherits = {'mail.alias': 'alias_id'} + _inherit = 'mail.thread' _description = "Sales Teams" _order = "complete_name" diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index fff47205582..b7b983e6c34 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -277,6 +277,9 @@ class crm_lead(base_stage, format_address, osv.osv): def create(self, cr, uid, vals, context=None): obj_id = super(crm_lead, self).create(cr, uid, vals, context) + record = self.browse(cr, uid, obj_id, context=context) + followers = [follow.id for follow in record.section_id.message_follower_ids] + self.message_subscribe(cr, uid, [record.id],followers, context=context) self.create_send_note(cr, uid, [obj_id], context=context) return obj_id diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index 4f4d73d5f43..373844a08af 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -115,6 +115,10 @@ +
+ + +
diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 96f44d353d6..c5ee16f21fe 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -286,6 +286,10 @@ class sale_order(osv.osv): def create(self, cr, uid, vals, context=None): order = super(sale_order, self).create(cr, uid, vals, context=context) + record = self.browse(cr, uid, order, context=context) + if record.section_id: + followers = [follow.id for follow in record.section_id.message_follower_ids] + self.message_subscribe(cr, uid, [record.id],followers, context=context) if order: self.create_send_note(cr, uid, [order], context=context) return order diff --git a/addons/sale_crm/sale_crm.py b/addons/sale_crm/sale_crm.py index b6d5ec25ce1..a764186e7a9 100644 --- a/addons/sale_crm/sale_crm.py +++ b/addons/sale_crm/sale_crm.py @@ -30,6 +30,16 @@ class sale_order(osv.osv): domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]") } +def create(self, cr, uid, vals, context=None): + order = super(sale_order, self).create(cr, uid, vals, context=context) + record = self.browse(cr, uid, order, context=context) + if record.section_id: + followers = [follow.id for follow in record.section_id.message_follower_ids] + self.message_subscribe(cr, uid, [record.id],followers, context=context) + if order: + self.create_send_note(cr, uid, [order], context=context) + return order + sale_order() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From cbb3407f262221dee47021a17c2e8d473716cbd2 Mon Sep 17 00:00:00 2001 From: "Nimesh (Open ERP)" Date: Mon, 24 Sep 2012 16:44:49 +0530 Subject: [PATCH 05/15] [IMP] improve code. bzr revid: nco@tinyerp.com-20120924111449-ovy2a2bel0vn6jm6 --- addons/project/project.py | 3 +-- addons/project_issue/project_issue.py | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 30f706d69d3..7a73778b469 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -1100,10 +1100,9 @@ class task(base_stage, osv.osv): def create(self, cr, uid, vals, context=None): task_id = super(task, self).create(cr, uid, vals, context=context) - project_obj = self.pool.get("project.project") project_id = self.browse(cr, uid, task_id, context=context).project_id if project_id: - follower_ids = project_obj.browse(cr, uid, project_id.id, context=context).message_follower_ids + follower_ids = self.pool.get("project.project").browse(cr, uid, project_id.id, context=context).message_follower_ids followers = [follower.id for follower in follower_ids] self.message_subscribe(cr, uid, task_id, followers, context=context) self._store_history(cr, uid, [task_id], context=context) diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 27d1d9d0a15..10a879ffdc0 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -381,9 +381,8 @@ class project_issue(base_stage, osv.osv): def create(self, cr, uid, vals, context=None): obj_id = super(project_issue, self).create(cr, uid, vals, context=context) - project_obj = self.pool.get("project.project") project_id = self.browse(cr, uid, obj_id, context=context).project_id - follower_ids = project_obj.browse(cr, uid, project_id.id, context=context).message_follower_ids + follower_ids = self.pool.get("project.project").browse(cr, uid, project_id.id, context=context).message_follower_ids followers = [follower.id for follower in follower_ids] self.message_subscribe(cr, uid, obj_id, followers, context=context) self.create_send_note(cr, uid, [obj_id], context=context) From bd4802fd6e73a087a8b41241068c90b41a6baff9 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Mon, 24 Sep 2012 23:39:49 +0530 Subject: [PATCH 06/15] [ADD]: Add tips for users bzr revid: atp@tinyerp.com-20120924180949-dtnqnsowrw2hogcv --- addons/crm/crm_view.xml | 2 +- addons/hr/hr_view.xml | 1 + addons/mail/static/src/js/mail_followers.js | 2 ++ addons/mail/static/src/xml/mail_followers.xml | 5 +++++ addons/project/project_view.xml | 2 +- 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index 373844a08af..63f709f1290 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -117,7 +117,7 @@
- +
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 5d4c2ae9d45..556411fdab4 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -44,6 +44,7 @@ + As Manager of this employee, you will automatically follow all human resource request of this employee diff --git a/addons/mail/static/src/js/mail_followers.js b/addons/mail/static/src/js/mail_followers.js index cf33bd64640..3527313a72c 100644 --- a/addons/mail/static/src/js/mail_followers.js +++ b/addons/mail/static/src/js/mail_followers.js @@ -23,9 +23,11 @@ openerp_mail_followers = function(session, mail) { template: 'mail.followers', init: function() { + this._super.apply(this, arguments); this.options.image = this.node.attrs.image || 'image_small'; this.options.title = this.node.attrs.title || 'Followers'; + this.options.context = this.node.attrs.context; this.ds_model = new session.web.DataSetSearch(this, this.view.model); this.ds_follow = new session.web.DataSetSearch(this, this.field.relation); }, diff --git a/addons/mail/static/src/xml/mail_followers.xml b/addons/mail/static/src/xml/mail_followers.xml index 32ce34d48d1..7b51404825a 100644 --- a/addons/mail/static/src/xml/mail_followers.xml +++ b/addons/mail/static/src/xml/mail_followers.xml @@ -12,6 +12,11 @@
+ + +
+
+

diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 93d01a5619b..462f622fa03 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -153,7 +153,7 @@
- +
From 55315e418aa79c1d0cb0df9c074f34e86aa37787 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Tue, 25 Sep 2012 07:07:47 +0530 Subject: [PATCH 07/15] [FIX]: remove context from expense and set condition for null followers in issue bzr revid: atp@tinyerp.com-20120925013747-o09k9bfwg83l0a41 --- addons/hr_expense/hr_expense.py | 4 ++-- addons/project_issue/project_issue.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index a46f2250b5c..f8fa8d9caff 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -118,9 +118,9 @@ class hr_expense_expense(osv.osv): return {'value': {'department_id': department_id, 'company_id': company_id}} def expense_confirm(self, cr, uid, ids, *args): - for expense in self.browse(cr, uid, ids, context=context): + for expense in self.browse(cr, uid, ids): if expense.employee_id and expense.employee_id.parent_id and expense.employee_id.parent_id.user_id: - self.message_subscribe(cr, uid, [expense.id], [expense.employee_id.parent_id.user_id.id], context=context) + self.message_subscribe(cr, uid, [expense.id], [expense.employee_id.parent_id.user_id.id]) self.write(cr, uid, ids, { 'state':'confirm', 'date_confirm': time.strftime('%Y-%m-%d') diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 805d29eb98d..5c9245de836 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -383,7 +383,7 @@ class project_issue(base_stage, osv.osv): obj_id = super(project_issue, self).create(cr, uid, vals, context=context) project_obj = self.pool.get("project.project") project_id = self.browse(cr, uid, obj_id, context=context).project_id - followers = [follower.id for follower in project_id.message_follower_ids] + followers = [follower.id for follower in project_id.message_follower_ids if project_id.message_follower_ids] self.message_subscribe(cr, uid, [obj_id], followers, context=context) self.create_send_note(cr, uid, [obj_id], context=context) return obj_id From f8df69e807d85aa9103e149ef534d96c9d32a955 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Tue, 25 Sep 2012 08:05:02 +0530 Subject: [PATCH 08/15] [FIX]: Fix id and None project_id problem bzr revid: atp@tinyerp.com-20120925023502-s114b6811pxm84kg --- addons/project_issue/project_issue.py | 5 +++-- addons/sale_crm/sale_crm.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 5c9245de836..18ab392dd79 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -383,8 +383,9 @@ class project_issue(base_stage, osv.osv): obj_id = super(project_issue, self).create(cr, uid, vals, context=context) project_obj = self.pool.get("project.project") project_id = self.browse(cr, uid, obj_id, context=context).project_id - followers = [follower.id for follower in project_id.message_follower_ids if project_id.message_follower_ids] - self.message_subscribe(cr, uid, [obj_id], followers, context=context) + if project_id: + followers = [follower.id for follower in project_id.message_follower_ids] + self.message_subscribe(cr, uid, [obj_id], followers, context=context) self.create_send_note(cr, uid, [obj_id], context=context) return obj_id diff --git a/addons/sale_crm/sale_crm.py b/addons/sale_crm/sale_crm.py index b7bd064563d..d2c8358263e 100644 --- a/addons/sale_crm/sale_crm.py +++ b/addons/sale_crm/sale_crm.py @@ -35,7 +35,7 @@ class sale_order(osv.osv): section_id = self.browse(cr, uid, order, context=context).section_id if section_id: followers = [follow.id for follow in section_id.message_follower_ids] - self.message_subscribe(cr, uid, [order.id], followers, context=context) + self.message_subscribe(cr, uid, [order], followers, context=context) return order sale_order() From ff126c5013bbcca60754e2815c243aa6ae73aca6 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Tue, 25 Sep 2012 10:23:58 +0530 Subject: [PATCH 09/15] [FIX]: Add oe_grey class bzr revid: atp@tinyerp.com-20120925045358-ch8rp3gjw8w5o4d0 --- addons/hr/hr_view.xml | 2 +- addons/mail/static/src/xml/mail_followers.xml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 556411fdab4..9924b75acea 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -44,7 +44,7 @@ - As Manager of this employee, you will automatically follow all human resource request of this employee + As Manager of this employee, you will automatically follow all human resource request of this employee diff --git a/addons/mail/static/src/xml/mail_followers.xml b/addons/mail/static/src/xml/mail_followers.xml index 7b51404825a..e8a6a2aa910 100644 --- a/addons/mail/static/src/xml/mail_followers.xml +++ b/addons/mail/static/src/xml/mail_followers.xml @@ -11,12 +11,12 @@
+
+ +
+
+
- - -
-
-

From 7f08d3d17609c25da7bc31b942e14da5bf370f55 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Tue, 25 Sep 2012 23:03:20 +0530 Subject: [PATCH 10/15] [FIX]: Fix employee manager id bzr revid: atp@tinyerp.com-20120925173320-z4vn1ir2bwp9gu5l --- addons/hr/hr_view.xml | 2 +- addons/hr_evaluation/hr_evaluation.py | 2 +- addons/hr_expense/hr_expense.py | 4 ++-- addons/hr_holidays/hr_holidays.py | 2 +- addons/hr_timesheet_sheet/hr_timesheet_sheet.py | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 9924b75acea..f32171bcc00 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -44,7 +44,7 @@ - As Manager of this employee, you will automatically follow all human resource request of this employee + As Manager of this employee, you will automatically follow all human resource request of this employee diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py index a40b21087f9..a81d1c9b9cb 100644 --- a/addons/hr_evaluation/hr_evaluation.py +++ b/addons/hr_evaluation/hr_evaluation.py @@ -245,7 +245,7 @@ class hr_evaluation(osv.osv): self.write(cr, uid, ids, {'state':'progress'}, context=context) for evaluation in self.browse(cr, uid, ids, context=context): if evaluation.employee_id and evaluation.employee_id.parent_id and evaluation.employee_id.parent_id.user_id: - self.message_subscribe(cr, uid, [evaluation.id], [evaluation.employee_id.parent_id.user_id.id], context=context) + self.message_subscribe_users(cr, uid, [evaluation.id], user_ids=[evaluation.employee_id.parent_id.user_id.id], context=context) if len(evaluation.survey_request_ids) != len(request_obj.search(cr, uid, [('evaluation_id', '=', evaluation.id),('state', 'in', ['done','cancel'])], context=context)): raise osv.except_osv(_('Warning!'),_("You cannot change state, because some appraisal(s) are in waiting answer or draft state.")) return True diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index f8fa8d9caff..91dc44fed61 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -119,8 +119,8 @@ class hr_expense_expense(osv.osv): def expense_confirm(self, cr, uid, ids, *args): for expense in self.browse(cr, uid, ids): - if expense.employee_id and expense.employee_id.parent_id and expense.employee_id.parent_id.user_id: - self.message_subscribe(cr, uid, [expense.id], [expense.employee_id.parent_id.user_id.id]) + if expense.employee_id and expense.employee_id.parent_id.user_id: + self.message_subscribe_users(cr, uid, [expense.id], user_ids=[expense.employee_id.parent_id.user_id.id]) self.write(cr, uid, ids, { 'state':'confirm', 'date_confirm': time.strftime('%Y-%m-%d') diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 770552b0573..76d4e42818a 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -303,7 +303,7 @@ class hr_holidays(osv.osv): self.check_holidays(cr, uid, ids, context=context) for record in self.browse(cr, uid, ids, context=context): if record.employee_id and record.employee_id.parent_id and record.employee_id.parent_id.user_id: - self.message_subscribe(cr, uid, [record.id], [record.employee_id.parent_id.user_id.id], context=context) + self.message_subscribe_users(cr, uid, [record.id], user_ids=[record.employee_id.parent_id.user_id.id], context=context) self.holidays_confirm_notificate(cr, uid, ids, context=context) return self.write(cr, uid, ids, {'state':'confirm'}) diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py index 3e7d7127b51..13c11cf72c7 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py @@ -267,7 +267,7 @@ class hr_timesheet_sheet(osv.osv): def button_confirm(self, cr, uid, ids, context=None): for sheet in self.browse(cr, uid, ids, context=context): if sheet.employee_id and sheet.employee_id.parent_id and sheet.employee_id.parent_id.user_id: - self.message_subscribe(cr, uid, [sheet.id], [sheet.employee_id.parent_id.user_id.id], context=context) + self.message_subscribe_users(cr, uid, [sheet.id], user_ids=[sheet.employee_id.parent_id.user_id.id], context=context) self.check_employee_attendance_state(cr, uid, sheet.id, context=context) di = sheet.user_id.company_id.timesheet_max_difference if (abs(sheet.total_difference) < di) or not di: From ae0d1d99a3532442df0843d3b3668f013c6db7ad Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Wed, 26 Sep 2012 21:32:33 +0530 Subject: [PATCH 11/15] [FIX]: Fix override write() method for sales team bzr revid: atp@tinyerp.com-20120926160233-1vvmf21nspprr4qp --- addons/crm/crm_lead.py | 5 ++++- addons/sale_crm/sale_crm.py | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 7c5b4f5b632..40607341901 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -788,7 +788,10 @@ class crm_lead(base_stage, format_address, osv.osv): stage = self.pool.get('crm.case.stage').browse(cr, uid, vals['stage_id'], context=context) if stage.on_change: vals['probability'] = stage.probability - return super(crm_lead,self).write(cr, uid, ids, vals, context) + for lead in self.browse(cr, uid, ids, context=context): + if lead.section_id: + vals.update({'message_follower_ids': [(4, follow.id) for follow in lead.section_id.message_follower_ids]}) + return super(crm_lead,self).write(cr, uid, ids, vals, context) # ---------------------------------------- # Mail Gateway diff --git a/addons/sale_crm/sale_crm.py b/addons/sale_crm/sale_crm.py index d2c8358263e..cf715eb64d8 100644 --- a/addons/sale_crm/sale_crm.py +++ b/addons/sale_crm/sale_crm.py @@ -38,6 +38,12 @@ class sale_order(osv.osv): self.message_subscribe(cr, uid, [order], followers, context=context) return order + def write(self, cr, uid, ids, vals, context=None): + for order in self.browse(cr, uid, ids, context=context): + if order.section_id: + vals.update({'message_follower_ids': [(4, follow.id) for follow in order.section_id.message_follower_ids]}) + return super(sale_order, self).write(cr, uid, ids, vals, context=context) + sale_order() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From f7c2177157bd29e4d2ab9289f311104040701d04 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Wed, 26 Sep 2012 21:52:25 +0530 Subject: [PATCH 12/15] [IMP]: Improve write method for project bzr revid: atp@tinyerp.com-20120926162225-io7szog9omvd0sx6 --- addons/crm/crm_lead.py | 2 +- addons/project/project.py | 4 ++++ addons/project_issue/project_issue.py | 3 +++ addons/sale_crm/sale_crm.py | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 40607341901..db2ede3ab5e 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -790,7 +790,7 @@ class crm_lead(base_stage, format_address, osv.osv): vals['probability'] = stage.probability for lead in self.browse(cr, uid, ids, context=context): if lead.section_id: - vals.update({'message_follower_ids': [(4, follow.id) for follow in lead.section_id.message_follower_ids]}) + vals.update({'message_follower_ids': [(4, follower.id) for follower in lead.section_id.message_follower_ids]}) return super(crm_lead,self).write(cr, uid, ids, vals, context) # ---------------------------------------- diff --git a/addons/project/project.py b/addons/project/project.py index eeab7a6b972..31b4f5ad4a4 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -1114,6 +1114,10 @@ class task(base_stage, osv.osv): def write(self, cr, uid, ids, vals, context=None): if isinstance(ids, (int, long)): ids = [ids] + for task in self.browse(cr, uid, ids, context=context): + if task.project_id: + vals.update({'message_follower_ids': [(4, follower.id) for follower in task.project_id.message_follower_ids]}) + if vals and not 'kanban_state' in vals and 'stage_id' in vals: new_stage = vals.get('stage_id') vals_reset_kstate = dict(vals, kanban_state='normal') diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 27b63b01366..f9d48ae6036 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -364,6 +364,9 @@ class project_issue(base_stage, osv.osv): logged_fields = ['stage_id', 'state', 'message_ids'] if any([field in vals for field in logged_fields]): vals['date_action_last'] = time.strftime('%Y-%m-%d %H:%M:%S') + for issue in self.browse(cr, uid, ids, context=context): + if issue.project_id: + vals.update({'message_follower_ids': [(4, follower.id) for follower in issue.project_id.message_follower_ids]}) return super(project_issue, self).write(cr, uid, ids, vals, context) def onchange_task_id(self, cr, uid, ids, task_id, context=None): diff --git a/addons/sale_crm/sale_crm.py b/addons/sale_crm/sale_crm.py index cf715eb64d8..7ed3db401c1 100644 --- a/addons/sale_crm/sale_crm.py +++ b/addons/sale_crm/sale_crm.py @@ -41,7 +41,7 @@ class sale_order(osv.osv): def write(self, cr, uid, ids, vals, context=None): for order in self.browse(cr, uid, ids, context=context): if order.section_id: - vals.update({'message_follower_ids': [(4, follow.id) for follow in order.section_id.message_follower_ids]}) + vals.update({'message_follower_ids': [(4, follower.id) for follower in order.section_id.message_follower_ids]}) return super(sale_order, self).write(cr, uid, ids, vals, context=context) sale_order() From feec62da0b550c2f3c8a181cc5166c4c036fc2c6 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Wed, 26 Sep 2012 22:54:29 +0530 Subject: [PATCH 13/15] [FIX]: Fix task name bzr revid: atp@tinyerp.com-20120926172429-cvk8ueo1rg52a4ir --- addons/project/project.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 31b4f5ad4a4..4276f9d7885 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -1114,9 +1114,9 @@ class task(base_stage, osv.osv): def write(self, cr, uid, ids, vals, context=None): if isinstance(ids, (int, long)): ids = [ids] - for task in self.browse(cr, uid, ids, context=context): - if task.project_id: - vals.update({'message_follower_ids': [(4, follower.id) for follower in task.project_id.message_follower_ids]}) + for t in self.browse(cr, uid, ids, context=context): + if t.project_id: + vals.update({'message_follower_ids': [(4, follower.id) for follower in t.project_id.message_follower_ids]}) if vals and not 'kanban_state' in vals and 'stage_id' in vals: new_stage = vals.get('stage_id') From 97fdf97be2e26cb7f1ff973a6ca9222e749762fd Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Wed, 26 Sep 2012 23:26:59 +0530 Subject: [PATCH 14/15] [FIX]: Add help instead of follow_help key bzr revid: atp@tinyerp.com-20120926175659-7x7r0zpek55jqaeq --- addons/crm/crm_view.xml | 2 +- addons/mail/static/src/js/mail_followers.js | 1 + addons/mail/static/src/xml/mail_followers.xml | 4 ++-- addons/project/project_view.xml | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index 63f709f1290..3af7426a957 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -117,7 +117,7 @@
- +
diff --git a/addons/mail/static/src/js/mail_followers.js b/addons/mail/static/src/js/mail_followers.js index 3527313a72c..b9d515fddc8 100644 --- a/addons/mail/static/src/js/mail_followers.js +++ b/addons/mail/static/src/js/mail_followers.js @@ -28,6 +28,7 @@ openerp_mail_followers = function(session, mail) { this.options.image = this.node.attrs.image || 'image_small'; this.options.title = this.node.attrs.title || 'Followers'; this.options.context = this.node.attrs.context; + this.options.comment = this.node.attrs.help || false; this.ds_model = new session.web.DataSetSearch(this, this.view.model); this.ds_follow = new session.web.DataSetSearch(this, this.field.relation); }, diff --git a/addons/mail/static/src/xml/mail_followers.xml b/addons/mail/static/src/xml/mail_followers.xml index e8a6a2aa910..cf31ab3e24c 100644 --- a/addons/mail/static/src/xml/mail_followers.xml +++ b/addons/mail/static/src/xml/mail_followers.xml @@ -12,8 +12,8 @@
- -
+ +
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 462f622fa03..45ba2f3cc38 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -153,7 +153,7 @@
- +
From d050d743ee8cd5b8ab62aafae8abc142702b7891 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Thu, 27 Sep 2012 00:14:45 +0530 Subject: [PATCH 15/15] [FIX]: override write method into hr module.. bzr revid: atp@tinyerp.com-20120926184445-3o03o0n4oxgprern --- addons/crm/crm_lead.py | 2 +- addons/hr_evaluation/hr_evaluation.py | 3 +++ addons/hr_expense/hr_expense.py | 6 ++++++ addons/hr_holidays/hr_holidays.py | 8 ++++++++ addons/hr_timesheet_sheet/hr_timesheet_sheet.py | 3 +++ addons/project/project.py | 2 +- addons/project_issue/project_issue.py | 2 +- addons/sale_crm/sale_crm.py | 2 +- 8 files changed, 24 insertions(+), 4 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index db2ede3ab5e..118847d46b6 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -790,7 +790,7 @@ class crm_lead(base_stage, format_address, osv.osv): vals['probability'] = stage.probability for lead in self.browse(cr, uid, ids, context=context): if lead.section_id: - vals.update({'message_follower_ids': [(4, follower.id) for follower in lead.section_id.message_follower_ids]}) + vals['message_follower_ids'] = [(4, follower.id) for follower in lead.section_id.message_follower_ids] return super(crm_lead,self).write(cr, uid, ids, vals, context) # ---------------------------------------- diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py index a81d1c9b9cb..61d506d220a 100644 --- a/addons/hr_evaluation/hr_evaluation.py +++ b/addons/hr_evaluation/hr_evaluation.py @@ -266,6 +266,9 @@ class hr_evaluation(osv.osv): return True def write(self, cr, uid, ids, vals, context=None): + for evalutation in self.browse(cr, uid, ids, context=context): + if evalutation.employee_id and evalutation.employee_id.parent_id and evalutation.employee_id.parent_id.user_id: + vals['message_follower_ids'] = [(4, evalutation.employee_id.parent_id.user_id.partner_id.id)] if 'date' in vals: new_vals = {'date_deadline': vals.get('date')} obj_hr_eval_iterview = self.pool.get('hr.evaluation.interview') diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index 91dc44fed61..ae67a20e270 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -100,6 +100,12 @@ class hr_expense_expense(osv.osv): 'currency_id': _get_currency, } + def write(self, cr, uid, ids, vals, context=None): + for expense in self.browse(cr, uid, ids): + if expense.employee_id and expense.employee_id.parent_id.user_id: + vals['message_follower_ids'] = [(4, expense.employee_id.parent_id.user_id.partner_id.id)] + return super(hr_expense_expense, self).write(cr, uid, ids, vals, context=context) + def onchange_currency_id(self, cr, uid, ids, currency_id=False, company_id=False, context=None): res = {'value': {'journal_id': False}} journal_ids = self.pool.get('account.journal').search(cr, uid, [('type','=','purchase'), ('currency','=',currency_id), ('company_id', '=', company_id)], context=context) diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 76d4e42818a..30ef776574f 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -307,6 +307,14 @@ class hr_holidays(osv.osv): self.holidays_confirm_notificate(cr, uid, ids, context=context) return self.write(cr, uid, ids, {'state':'confirm'}) + def write(self, cr, uid, ids, vals, context=None): + for holiday in self.browse(cr, uid, ids): + if holiday.employee_id and holiday.employee_id.parent_id.user_id: + vals['message_follower_ids'] = [(4, holiday.employee_id.parent_id.user_id.partner_id.id)] + return super(hr_holidays, self).write(cr, uid, ids, vals, context=context) + + + def holidays_refuse(self, cr, uid, ids, context=None): obj_emp = self.pool.get('hr.employee') ids2 = obj_emp.search(cr, uid, [('user_id', '=', uid)]) diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py index 13c11cf72c7..49d50ea2552 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py @@ -252,6 +252,9 @@ class hr_timesheet_sheet(osv.osv): return super(hr_timesheet_sheet, self).create(cr, uid, vals, *args, **argv) def write(self, cr, uid, ids, vals, *args, **argv): + for timesheet in self.browse(cr, uid, ids): + if timesheet.employee_id and timesheet.employee_id.parent_id.user_id: + vals['message_follower_ids'] = [(4, timesheet.employee_id.parent_id.user_id.partner_id.id)] if 'employee_id' in vals: new_user_id = self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).user_id.id or False if not new_user_id: diff --git a/addons/project/project.py b/addons/project/project.py index 4276f9d7885..ebfa5902c35 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -1116,7 +1116,7 @@ class task(base_stage, osv.osv): ids = [ids] for t in self.browse(cr, uid, ids, context=context): if t.project_id: - vals.update({'message_follower_ids': [(4, follower.id) for follower in t.project_id.message_follower_ids]}) + vals['message_follower_ids'] = [(4, follower.id) for follower in t.project_id.message_follower_ids] if vals and not 'kanban_state' in vals and 'stage_id' in vals: new_stage = vals.get('stage_id') diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index f9d48ae6036..15eb1ee5f7c 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -366,7 +366,7 @@ class project_issue(base_stage, osv.osv): vals['date_action_last'] = time.strftime('%Y-%m-%d %H:%M:%S') for issue in self.browse(cr, uid, ids, context=context): if issue.project_id: - vals.update({'message_follower_ids': [(4, follower.id) for follower in issue.project_id.message_follower_ids]}) + vals['message_follower_ids'] = [(4, follower.id) for follower in issue.project_id.message_follower_ids] return super(project_issue, self).write(cr, uid, ids, vals, context) def onchange_task_id(self, cr, uid, ids, task_id, context=None): diff --git a/addons/sale_crm/sale_crm.py b/addons/sale_crm/sale_crm.py index 7ed3db401c1..a0d680cbde5 100644 --- a/addons/sale_crm/sale_crm.py +++ b/addons/sale_crm/sale_crm.py @@ -41,7 +41,7 @@ class sale_order(osv.osv): def write(self, cr, uid, ids, vals, context=None): for order in self.browse(cr, uid, ids, context=context): if order.section_id: - vals.update({'message_follower_ids': [(4, follower.id) for follower in order.section_id.message_follower_ids]}) + vals['message_follower_ids'] = [(4, follower.id) for follower in order.section_id.message_follower_ids] return super(sale_order, self).write(cr, uid, ids, vals, context=context) sale_order()