Files
tradon/modules/stock/res.py
2026-03-14 09:42:12 +00:00

52 lines
1.8 KiB
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model import fields
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
class User(metaclass=PoolMeta):
__name__ = 'res.user'
warehouse = fields.Many2One('stock.location',
"Current Warehouse",
domain=[('type', '=', 'warehouse')],
help="The warehouse that the user works at.")
@classmethod
def __setup__(cls):
super().__setup__()
cls._context_fields.insert(0, 'warehouse')
@classmethod
def _get_preferences(cls, user, context_only=False):
preferences = super()._get_preferences(user, context_only=context_only)
if user.warehouse:
preferences['warehouse'] = user.warehouse.id
return preferences
def get_status_bar(self, name):
pool = Pool()
Location = pool.get('stock.location')
status = super().get_status_bar(name)
if (self.warehouse
and len(Location.search([('type', '=', 'warehouse')])) > 1):
status += ' - %s' % self.warehouse.rec_name
return status
@classmethod
def read(cls, ids, fields_names):
context = Transaction().context
user_id = Transaction().user
if user_id == 0 and 'user' in Transaction().context:
user_id = Transaction().context['user']
result = super().read(ids, fields_names)
if ('warehouse' in fields_names
and context.get('warehouse')
and user_id in ids):
for values in result:
if values['id'] == user_id:
values['warehouse'] = context['warehouse']
return result