i already stack to get user current group id ,
i use this method to get current user group id :
def cek_group(self,cr,uid,ids,context=None):
x={}
for rec in self.browse(cr,uid,ids) :
x[rec.id] = self.pool.get("res.users").browse(cr, uid, uid)['groups_id']
return x
but i don't know how to call it in my act_window. XML code shown below :
<record model="ir.actions.act_window" id="approval_portal_action">
<field name="name">Portal Approval Matrix Biaya</field>
<field name="res_model">wtc.approval.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain">[('sts','=','1'),('group_id','=',%(cek_group)d]</field>
</record>
i got an error .. Error: % undefined as prefix
------------------------------------------------------------------------------------------------------------------------------------------------------------------
EDIT
my python code shown below :
class wtc_approval_line(osv.osv):
_name="wtc.approval.line"
def _get_transaction_no(self, cr, uid, ids, field_name, args, context=None):
x={}
for rec in self.browse(cr,uid,ids) :
x[rec.id] = self.pool.get(rec.form.model).browse(cr,uid,rec.transaction_id).name
return x
_columns={
'transaction_id' :fields.integer('Transaction ID'),
'value':fields.float('Value',digits=(12,2)),
'form':fields.many2one('ir.model','Form'),
'group_id':fields.many2one('res.groups','Group', select=True),
'cabang_id': fields.many2one('res.partner','Branch',select=True),
'divisi_id': fields.selection([('t','Unit'),('s','Sparepart'),('u','Umum'),('f','Finance')],'Division',change_default=True),
'wewenang':fields.float('Limit', digits=(12,2)),
'sts':fields.selection([('1','Belum Approve'),('2','Approved'),('3','Rejected')],'Status',change_default=True),
'pelaksana':fields.many2one('res.users','Pelaksana', size=128),
'tanggal':fields.datetime('Tanggal'),
'reason':fields.text('Reason'),
'transaction_no':fields.function(_get_transaction_no, string="Transaction No", type="char")
}
_defaults={
'sts' : '1'
}
def wtc_ambil_group(self,cr,uid,ids,context=None):
x={}
for rec in self.browse(cr,uid,ids) :
x[rec.id] = self.pool.get("res.user").browse(cr, uid, uid)['groups_id']
return x
def wtc_approval_change(self,cr,uid,ids,context=None):
val = self.browse(cr, uid, ids, context=context)
a = val.form.id
if a == '333' :
move_obj = self.pool.get('purchase.order')
move_ids = context['active_ids']
for data in self.browse(cr, uid, ids):
move_obj.wtc_approval(cr, uid, move_ids,id=data.id,context=context)
else :
print "dffffffffffffff",a
return {'type': 'ir.actions.act_window_close'}
def wtc_get_transaction(self,cr,uid,ids,context=None):
a = self.browse(cr,uid,ids)
return {
'name': 'Purchase Order',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'purchase.order',
'type': 'ir.actions.act_window',
'nodestroy': True,
'target': 'new',
'res_id': a.transaction_id or False
}
def default_get(self, cr, uid, fields, context=None):
if context is None:
context = {}
res = super(wtc_approval_line, self).default_get(cr, uid, fields, context=context)
if not context.has_key('active_ids'):
approval_ids = self.pool.get("res.user").browse(cr, uid, [])['groups_id']
else:
approval = context.get('active_ids')
approval_ids = self.pool.get("res.user").browse(cr, uid, approval)['groups_id']
if 'group_id' in fields:
res.update({'group_id': approval_ids})
return res
my xml code :
<record model="ir.ui.view" id="approval_line_tree_view">
<field name="name">approval.line.tree</field>
<field name="model">wtc.approval.line</field>
<field name="arch" type="xml">
<tree string="Approval Matrix Biaya" >
<field name="transaction_no"/>
<field name="form"/>
<field name="cabang_id"/>
<field name="divisi_id"/>
<field name="group_id"/>
<field name="value"/>
<field name="tanggal"/>
<field name="sts" />
<button name="wtc_get_transaction" type="object" string="Indext" icon="gtk-index"/>
<button name="wtc_approval_change" type="object" string="Approved" icon="gtk-apply" attrs="{'invisible':[('sts','!=','1')]}"/>
<button name="%(wtc_reject_list_action)d" type="action" string="Reject" icon="gtk-cancel" attrs="{'invisible':[('sts','!=','1')]}"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="approval_portal_action">
<field name="name">Portal Approval Matrix Biaya</field>
<field name="res_model">wtc.approval.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain">[('sts','=','1'),('group)id','=',default_get)]</field>
</record>