From b805979e924692d975ce7da4d92c3b5b20ef2dc3 Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Mon, 28 May 2012 12:31:57 +0530 Subject: [PATCH 001/274] [IMP]project: set one selection field and and some methods for followers or members bzr revid: dbr@tinyerp.com-20120528070157-8lo7c1d3owzbmhaq --- addons/project/project.py | 40 +++++++++++++++++++- addons/project/project_view.xml | 1 + addons/project/security/project_security.xml | 5 +++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/addons/project/project.py b/addons/project/project.py index 0b23196a67f..cc5da2c15dc 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -67,6 +67,35 @@ class project(osv.osv): return super(project, self).search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count) + def write(self, cr, uid, ids, vals, context=None): + if context is None: + context = {} + list = [] + project_ids = self.browse(cr, uid, ids) + groups = self.pool.get('res.groups') + group_id = groups.search(cr, uid, [('name', '=', 'Followers')], context=context) + groups_users = groups.browse(cr, uid, group_id)[0].users + for project_id in project_ids: + select = vals.get('privacy_visility') or project_id.privacy_visility or False + members = vals.get('members') or project_id.members or False + if select=='follower': + if members: + for member in members: + list.append(member.id) + followers = self.find_followers(cr, uid, ids, context) + for member_id in list: + if not member_id in followers: + self.message_subscribe(cr, uid, ids, [member_id], context=context) + return super(project, self).write(cr, uid, ids, vals, context=context) + + def find_followers(self, cr, uid, ids, context=None): + user=[] + sub_obj = self.pool.get('mail.subscription') + sub_id = sub_obj.search(cr, uid, [('res_model','=','project.project'),('res_id','in',ids)], context=context) + for follower_id in sub_obj.browse(cr, uid, sub_id): + user.append(follower_id.user_id.id) + return user + def _complete_name(self, cr, uid, ids, name, args, context=None): res = {} for m in self.browse(cr, uid, ids, context=context): @@ -202,11 +231,20 @@ class project(osv.osv): 'task_count': fields.function(_task_count, type='integer', string="Open Tasks"), 'color': fields.integer('Color Index'), 'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'), + 'privacy_visility': fields.selection([('public','Public'), ('follower','Followers Only')], 'Privacy / Visility', select=True), } def dummy(self, cr, uid, ids, context): return True - + + def message_thread_followers(self, cr, uid, ids, context=None): + followers = super(project,self).message_thread_followers(cr, uid, ids, context=context) + for project in self.browse(cr, uid, followers.keys(), context=context): + project_followers = set(followers[project.id]) + project_followers.add(project.user_id.user_email) + followers[project.id] = filter(None, project_followers) + return followers + def _get_type_common(self, cr, uid, context): ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) return ids diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 70cdac1efa0..5d2d29fb5d5 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -41,6 +41,7 @@ + diff --git a/addons/project/security/project_security.xml b/addons/project/security/project_security.xml index 2bfe967e675..fb9041681f2 100644 --- a/addons/project/security/project_security.xml +++ b/addons/project/security/project_security.xml @@ -14,6 +14,11 @@ + + Followers + + + From 22dce019498e609a3c85680a7b1356215c001797 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 28 May 2012 14:49:10 +0530 Subject: [PATCH 002/274] [IMP]add sequence file and sequence for analytic account and changes in form view extend type field and made changes in project of account for view an hr_timsheet_invoice and made on change for partner and template ids bzr revid: sgo@tinyerp.com-20120528091910-jw8804dxj4hlbjaa --- addons/account/data/account_data.xml | 4 +- .../account/project/analytic_account_demo.xml | 40 ---------------- addons/account/project/project_view.xml | 46 +++++++++---------- .../account_analytic_analysis.py | 16 +++++++ .../account_analytic_analysis_menu.xml | 8 ++-- .../account_analytic_analysis_view.xml | 15 ++++++ addons/analytic/__openerp__.py | 1 + addons/analytic/analytic.py | 3 +- addons/analytic/analytic_sequence.xml | 16 +++++++ addons/hr_timesheet/hr_timesheet_demo.xml | 10 ++-- .../hr_timesheet_invoice.py | 12 +++-- .../hr_timesheet_invoice_view.xml | 2 +- 12 files changed, 91 insertions(+), 82 deletions(-) create mode 100644 addons/analytic/analytic_sequence.xml diff --git a/addons/account/data/account_data.xml b/addons/account/data/account_data.xml index 12fd558a31f..8a740219064 100644 --- a/addons/account/data/account_data.xml +++ b/addons/account/data/account_data.xml @@ -557,7 +557,7 @@ + Analytic account account.analytic.account @@ -567,7 +567,7 @@ account.analytic.account - + --> + account.analytic.account.invoice.stat.form.inherit account.analytic.account @@ -27,7 +27,7 @@ icon="gtk-go-forward"/> - + --> account.analytic.account.invoice.form.inherit @@ -39,7 +39,22 @@ - + + + + + + + + + + + + + + + diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py index 8d678f19554..0c2590ba682 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py @@ -73,9 +73,11 @@ class account_analytic_account(osv.osv): help="Fill this field if you plan to automatically generate invoices based " \ "on the costs in this analytic account: timesheets, expenses, ..." \ "You can configure an automatic invoice rate on analytic accounts."), + 'use_timesheets': fields.boolean('Timesheets:', help="Check this field if this project manages timesheets"), } _defaults = { 'pricelist_id': lambda self, cr, uid, ctx: ctx.get('pricelist_id', False), + 'use_timesheets' : True, } def on_change_partner_id(self, cr, uid, id, partner_id, context={}): res=super(account_analytic_account,self).on_change_partner_id(cr, uid, id, partner_id, context=context) diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml index 5691ae438e6..b43776a8ee8 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml @@ -8,9 +8,15 @@ - + - + + + + + + +
- + From 26a574f79612276dc4fddd3db0735300e39b38d7 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 4 Jun 2012 12:48:56 +0530 Subject: [PATCH 048/274] [IMP]change report and made changes in timesheet which is not shown contract record and attrs on the field bzr revid: sgo@tinyerp.com-20120604071856-xibj1lz9rjclyzmq --- .../account_analytic_analysis.py | 22 +- .../account_analytic_analysis_view.xml | 18 +- .../report/analytic_account.rml | 395 +++++++++++------- .../hr_timesheet_invoice_view.xml | 4 +- 4 files changed, 257 insertions(+), 182 deletions(-) diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py index 0a517faec69..aff71cfef7b 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis.py +++ b/addons/account_analytic_analysis/account_analytic_analysis.py @@ -235,10 +235,13 @@ class account_analytic_account(osv.osv): return res if child_ids: - cr.execute("select hel.analytic_account,SUM(hel.unit_amount*hel.unit_quantity) from hr_expense_line as hel\ - LEFT JOIN hr_expense_expense as he ON he.id = hel.expense_id\ - where he.state = 'paid' and hel.analytic_account IN %s \ - GROUP BY hel.analytic_account",(child_ids,)) + cr.execute("SELECT hel.analytic_account,SUM(hel.unit_amount*hel.unit_quantity)\ + FROM hr_expense_line AS hel\ + LEFT JOIN hr_expense_expense AS he \ + ON he.id = hel.expense_id\ + WHERE he.state = 'paid' \ + AND hel.analytic_account IN %s \ + GROUP BY hel.analytic_account",(child_ids,)) for account_id, sum in cr.fetchall(): res[account_id] = sum res_final = res @@ -254,10 +257,13 @@ class account_analytic_account(osv.osv): return res if child_ids: - cr.execute("select hel.analytic_account, SUM(hel.unit_amount*hel.unit_quantity) from hr_expense_line as hel\ - LEFT JOIN hr_expense_expense as he ON he.id = hel.expense_id\ - where he.state = 'invoiced' and hel.analytic_account IN %s \ - GROUP BY hel.analytic_account",(child_ids,)) + cr.execute("SELECT hel.analytic_account, SUM(hel.unit_amount*hel.unit_quantity) \ + FROM hr_expense_line AS hel\ + LEFT JOIN hr_expense_expense AS he \ + ON he.id = hel.expense_id\ + WHERE he.state = 'invoiced' \ + AND hel.analytic_account IN %s \ + GROUP BY hel.analytic_account",(child_ids,)) for account_id, sum in cr.fetchall(): res[account_id] = sum res_final = res diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml index 1f5df857cda..bea6d70608b 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml +++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml @@ -34,12 +34,6 @@ res_model="sale.order.line" src_model="account.analytic.account" /> - account.analytic.account.invoice.form.inherit @@ -90,7 +84,7 @@ -