Resolved department's filter problem, you can use this in domains:
department_users_get() If you installed the hr module. bzr revid: fp@tinyerp.com-543c94b55bebf132df064497efb2c8e73cfa5577
This commit is contained in:
parent
0432c6c70d
commit
46e546d5f4
|
@ -24,13 +24,13 @@
|
|||
view_id="view_account_analytic_simplified"
|
||||
id="act_my_account"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_project_pipeline_user">
|
||||
<field name="name">Pipeline of tasks</field>
|
||||
<field name="res_model">report.task.user.pipeline.open</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('task_state','<>','cancelled'),('task_state','<>','done')]</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_project_pipeline_user">
|
||||
<field name="name">Pipeline of tasks</field>
|
||||
<field name="res_model">report.task.user.pipeline.open</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('task_state','<>','cancelled'),('task_state','<>','done'),('user_id','in',department_users_get())]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="hr_timesheet_sheet_tree">
|
||||
<field name="name">hr.timesheet.sheet.tree.simplified.board</field>
|
||||
|
@ -50,7 +50,7 @@
|
|||
<record model="ir.actions.act_window" id="act_hr_timesheet_sheet">
|
||||
<field name="name">Timesheets</field>
|
||||
<field name="res_model">hr_timesheet_sheet.sheet</field>
|
||||
<field name="domain">[('state','<>','done')]</field>
|
||||
<field name="domain">[('state','<>','done'),('user_id','in',department_users_get())]</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="hr_timesheet_sheet_tree"/>
|
||||
</record>
|
||||
|
|
|
@ -40,6 +40,12 @@ class hr_department(osv.osv):
|
|||
'manager_id': fields.many2one('res.users', 'Manager', required=True),
|
||||
'member_ids': fields.many2many('res.users', 'hr_department_user_rel', 'department_id', 'user_id', 'Members'),
|
||||
}
|
||||
def _get_members(self,cr, uid, context={}):
|
||||
mids = self.search(cr, uid, [('manager_id','=',uid)])
|
||||
result = {uid:1}
|
||||
for m in self.browse(cr, uid, mids, context):
|
||||
result[m.id] = 1
|
||||
return result.keys()
|
||||
def _check_recursion(self, cr, uid, ids):
|
||||
level = 100
|
||||
while len(ids):
|
||||
|
@ -55,3 +61,16 @@ class hr_department(osv.osv):
|
|||
|
||||
hr_department()
|
||||
|
||||
|
||||
class ir_action_window(osv.osv):
|
||||
_inherit = 'ir.actions.act_window'
|
||||
def read(self, cr, uid, ids, *args, **kwargs):
|
||||
res = super(ir_action_window, self).read(cr, uid, ids, *args, **kwargs)
|
||||
for r in res:
|
||||
mystring = 'department_users_get()'
|
||||
if mystring in (r.get('domain', '[]') or ''):
|
||||
r['domain'] = r['domain'].replace(mystring, str(self.pool.get('hr.department')._get_members(cr, uid)))
|
||||
return res
|
||||
ir_action_window()
|
||||
|
||||
|
||||
|
|
|
@ -39,14 +39,14 @@ class report_task_user_pipeline_open (osv.osv):
|
|||
'task_hrs': fields.float('Task Hours', readonly=True),
|
||||
'task_progress': fields.float('Task Progress', readonly=True),
|
||||
'company_id' : fields.many2one('res.company', 'Company'),
|
||||
'task_state' : fields.char('Task State',size = '64' ,readonly=True),
|
||||
'task_state': fields.selection([('draft', 'Draft'),('open', 'Open'),('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done')], 'State', readonly=True),
|
||||
}
|
||||
|
||||
def init(self, cr):
|
||||
cr.execute("""
|
||||
create or replace view report_task_user_pipeline_open as (
|
||||
select
|
||||
u.id as id,
|
||||
min(t.id) as id,
|
||||
u.id as user_id,
|
||||
u.company_id as company_id,
|
||||
count(*) as task_nbr,
|
||||
|
|
Loading…
Reference in New Issue