diff --git a/__init__.py b/__init__.py index 6eedc88..9142857 100644 --- a/__init__.py +++ b/__init__.py @@ -6,6 +6,7 @@ from . import activity from . import bank from . import employee from . import carrier +from . import galatea from . import party from . import user @@ -32,3 +33,7 @@ def register(): carrier.Carrier, depends=['carrier'], module='party_company', type_='model') + Pool.register( + galatea.GalateaUser, + depends=['galatea'], + module='party_company', type_='model') diff --git a/galatea.py b/galatea.py new file mode 100644 index 0000000..07cc07a --- /dev/null +++ b/galatea.py @@ -0,0 +1,44 @@ +# The COPYRIGHT file at the top level of this repository contains the full +# copyright notices and license terms. +from trytond.pool import Pool, PoolMeta +from trytond.transaction import Transaction +from trytond.model import fields +from trytond.pyson import Eval + +__all__ = ['GalateaUser'] + + +class GalateaUser(metaclass=PoolMeta): + __name__ = 'galatea.user' + companies = fields.Function(fields.One2Many( + 'company.company', None, 'Companies'), 'on_change_with_companies') + + @classmethod + def __setup__(cls): + super(GalateaUser, cls).__setup__() + cls.websites.domain += [('company', 'in', Eval('companies'))] + cls.websites.depends += ['companies'] + + @fields.depends('party') + def on_change_with_companies(self, name=None): + User = Pool().get('res.user') + + if self.party and self.party.companies: + return [c.id for c in self.party.companies] + else: + user = User(Transaction().user) + return [c.id for c in user.companies] + + @staticmethod + def default_websites(): + # overwrite default_websites from galatea module because add websites + # by company + pool = Pool() + Website = pool.get('galatea.website') + User = pool.get('res.user') + + user = User(Transaction().user) + return [p.id for p in Website.search([ + ('registration', '=', True), + ('company', '=', user.company) + ])] diff --git a/galatea.xml b/galatea.xml new file mode 100644 index 0000000..1f21d54 --- /dev/null +++ b/galatea.xml @@ -0,0 +1,19 @@ + + + + + + + User in company + + + + + + + + + diff --git a/tryton.cfg b/tryton.cfg index 87fc2eb..f9b73fe 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -10,6 +10,7 @@ extras_depend: bank carrier commission + galatea sale_shop stock xml: @@ -18,6 +19,7 @@ xml: carrier.xml commission.xml employee.xml + galatea.xml party.xml shop.xml messages.xml