first commit
This commit is contained in:
51
modules/stock/res.py
Normal file
51
modules/stock/res.py
Normal file
@@ -0,0 +1,51 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user