Я добавил это к модели res.users
:
class res_users(osv.osv):
_inherit = 'res.users'
_columns = {
'por_sucursal': fields.boolean('Por Sucursal', help="Es por Sucursal"),
'sucursal_u' : fields.many2one('sucursales', 'Sucursal', help="Selecciona la sucursal"),
}
_defaults = {
'por_sucursal': False,
}
res_users()
У меня также есть модель ordenes.orden
:
class ordenes_orden(osv.Model):
_name = 'ordenes.orden'
_description = 'Ordenes de servicio'
_columns = {
'sucursal' : fields.many2one('sucursales', 'Sucursal', help="Selecciona la sucursal", required= True),
}
ordenes_orden()
Откуда взялась модель sucursales
:
class sucursales(osv.Model):
_name = 'sucursales'
_description = 'Sucursales de la empresa'
_columns = {
'name': fields.char('Sucursal', size=50, help="Sucursal"),
}
sucursales()
Наконец, я добавил и этот класс:
class ordenes(osv.Model):
_name = 'ordenes.orden'
_inherit = 'ordenes.orden'
def dame_sucursal(self, cr, uid, ids, field, arg, context=None):
res = {}
for obj in self.browse(cr, uid, ids, context=context):
res[obj.id] = False
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
if user and user.sucursal_u and user.por_sucursal:
res[obj.id] = user.sucursal_u.id
return res
_columns = {
'name_suc': fields.function(dame_sucursal, type='many2one', store= True,
readonly = True, relation='sucursales')
}
ordenes()
Итак, я хочу отфильтровать все заказы из sucursal, где они равны sucursal current_user в древовидном представлении. Работает нормально, но только первое время. Поле функции не обновляется, если я меняю sucursal от текущего пользователя. Это мой вид дерева:
<record id="open_view_ordenes_sucursales" model="ir.actions.act_window">
<field name="name">Ordenes</field>
<field name="res_model">ordenes.orden</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('sucursal','=','name_suc'),('state', 'not in', ('done','cancel'))]</field>
<field name="view_id" ref="x_sucursal_view_tree"/>
</record>