Hi Jack..
Here is the code in .py file
class hr_objectives(osv.osv):
_name="hr.objectives"
_columns={'active_id': fields.integer(),
'values': fields.text(),
}
class hr_performancegoals(osv.osv):
_name = "hr.performancegoals"
_description = "Performance Goals"
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
if context is None:
context = {}
result = super(hr_performancegoals, self).fields_view_get(cr, uid, view_id,view_type, context, toolbar,submenu)
#print "Result OF Goals Hope :", result
data = result['arch']
if uid == 1:
L=[]
ldata = data.split("\n")
for var in ldata:
if re.search("str_goals",var):
pass
else:
L.append(var)
reqdata =''.join(L)
result['arch']=reqdata
else:
L=[]
ldata = data.split("\n")
for var in ldata:
if re.search("strategic_goals",var):
pass
else:
L.append(var)
reqdata =''.join(L)
result['arch']=reqdata
if context.get('name_related',''):
if result['name'] == "hr.performancegoals.form":
cr.execute("select str_goals,objectives,specific_actions_required_to_deliver_strategic_goal,completion_date from hr_performancegoals where employee_id=%s" %(context.get('id','')))
dicdata = cr.dictfetchall()
L=self._get_objectives(cr,uid,context)
print "Objectives :",L
data = result['fields']
arch = result['arch'].split('</tree>')
arch=arch[0]+'''<label align='0.0' string = "Omkar"/></tree>'''
#print"Architecture::", arch
meet = self.pool.get('hr.performancegoals')
meet_obj = meet.browse(cr, uid, context.get('id',''), context=context)
result = meet.fields_view_get( cr, uid, view_id, 'form')
print "Result Here Once :", result
#result['arch']=arch
return result
def _get_employee_id(self,cr,uid,ids,name,arg,context=None):
if context.get('id',''):
res = dict.fromkeys(ids,context.get('id',''))
return res
else:
cr.execute("select id from resource_resource where user_id=%s"%context.get('uid',''))
log_name = cr.dictfetchall()[0]
res = dict.fromkeys(ids,log_name['id'])
return res
def _get_objectives(self, cr, uid,context):
L=[]
if context.get('name_related','') :
cr.execute ("select parent_id from hr_employee where name_related='%s'"%context.get('name_related',''))
parent_id=cr.dictfetchall()[0]
cr.execute("select objectives from hr_performancegoals where employee_id=%s"%int(parent_id['parent_id']))
data = cr.dictfetchall()
for i,values in enumerate(data):
if values['objectives'] == None:
pass
else:
a=unicodedata.normalize('NFKD', values['objectives']).encode('ascii','ignore')
L.append((a,a))
else:
if context.get('uid',''):
user_id = int(context.get('uid',''))
cr.execute("select id from resource_resource where user_id=%s"%user_id)
log_name = cr.dictfetchall()[0]
if log_name['id'] == 1:
L=[]
else:
cr.execute ("select parent_id from hr_employee where id=%s"%log_name['id'])
parent_id=cr.dictfetchall()[0]
cr.execute("select objectives from hr_performancegoals where employee_id=%s"%parent_id['parent_id'])
data = cr.dictfetchall()
for i,values in enumerate(data):
a=unicodedata.normalize('NFKD', values['objectives']).encode('ascii','ignore')
L.append((a,a))
return L
_columns = {
'employee_id': fields.function(_get_employee_id,method=True, type='many2one', relation="hr.employee", string="Employee",store=True),
'strategic_goals': fields.char('Strategic Goals'),
'str_goals': fields.selection(_get_objectives, type='selection', method=True, store=False, string="Strategic"),
'objectives' : fields.text('Objectives'),
'completion_date' : fields.date('Completion Date'),
'specific_actions_required_to_deliver_strategic_goal' : fields.text('Specific Actions Required To Deliver Strategic Goal'),
'status': fields.selection([('Yet To Start','Yet To Start'),
('In Progress','In Progress'),
('Invalid','Invalid'),
('Completed','Completed'),
('Closed','Closed'),],
'Status', required=True),
}
class hr_team(osv.osv):
# Instead of Act Win I want to call Function
_name = "hr.team"
_inherit="hr.employee"
_description = "Team Goals"
_columns = {
'id':fields.char('Employee ID'),
'name_related':fields.char('EMPLOYEE NAME', require=True),
'department_id':fields.char('Department'),
'work_location': fields.char('Office Location', size=32),
'job_id':fields.char('Role/Designation', required=True),
}
Here is the XML File...
<record model="ir.ui.view" id="view_hr_performancegoals_form">
<field name="name">hr.performancegoals.form</field>
<field name="model">hr.performancegoals</field>
<field name="arch" type="xml">
<form string="Goals" version="7.0">
<sheet>
<notebook>
<page string="Add New Goals">
<group>
<field name="employee_id" invisible="1"/>
</group>
<group col="4">
<field name="str_goals" context="{'employee_id':employee_id}"/>
<field name="strategic_goals" />
<field name="objectives"/>
<field name="completion_date"/>
<field name="specific_actions_required_to_deliver_strategic_goal"/>
<field name="status"/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_hr_performancegoals_tree">
<field name="name">hr.performancegoals.form</field>
<field name="model">hr.performancegoals</field>
<field name="arch" type="xml">
<tree string="Goals" editable="bottom" >
<field name="employee_id" invisible="1"/>
<field name="str_goals" context="{'employee_id':employee_id}"/>
<field name="strategic_goals"/>
<field name="objectives"/>
<field name="completion_date"/>
<field name="specific_actions_required_to_deliver_strategic_goal"/>
<field name="status"/>
</tree>
</field>
</record>
<record id="hr_performancegoals_action" model="ir.actions.act_window">
<field name="name">Goals</field>
<field name="res_model">hr.performancegoals</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_hr_performancegoals_tree"/>
</record>
<menuitem parent="hr_evaluation.menu_eval_hr" id="hr_performancegoals" name="Goals" action="hr_performancegoals_action"/>
<record model="ir.ui.view" id="view_hr_team_form">
<field name="name">hr.team.form</field>
<field name="model">hr.employee</field>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Team">
<group col="4">
<field name="id" invisible="1"/>
<field name="name_related"/>
<field name="department_id"/>
<field name="work_location"/>
<field name="job_id"/>
<button name="%(act_view_hr_performancegoals_tree)d" type="action" string="Assign Goals" class="oe_link oe_edit_only" icon="STOCK_DIRECTORY_MENU" context="{'id':id,'name_related':name_related}"/>
</group>
</page>
</notebook>
</field>
</record>
<record model="ir.ui.view" id="view_hr_team_tree">
<field name="name">hr.team.tree</field>
<field name="model">hr.employee</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Team" editable="bottom" >
<field name="id" invisible="1"/>
<field name="name_related"/>
<field name="department_id"/>
<field name="work_location"/>
<field name="job_id"/>
<!--<button name="action_button_confirm" type="object" string="Assign Goals" class="oe_link oe_edit_only" icon="STOCK_DIRECTORY_MENU" context="{'id':id,'name_related':name_related,'employee_id':id}"/> -->
<button name="%(act_view_hr_performancegoals_tree)d" type="action" string="Assign Goals" class="oe_link oe_edit_only" icon="STOCK_DIRECTORY_MENU" context="{'id':id,'name_related':name_related}"/>
</tree>
</field>
</record>
<record id="hr_team_action" model="ir.actions.act_window">
<field name="name">Team</field>
<field name="res_model">hr.employee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_hr_team_tree"/>
</record>
<menuitem id="hr_team" name="Team" parent="hr_evaluation.menu_eval_hr" action="hr_team_action"/>
My Query was that In the Team Menu If i select and Click on the Person of my team , the I want to see only his Goals rather than My goals which will visible in the goals page.
Team menu should be inherited from hr employee
Yes you can do using fields_view_get.
HI Jack. Can you send me a example for this.
I struck with this from last three days... Please provide a example It helps me a lot..
paste your method code will see and help you