"""Assets data adapter.""" from .base import DataAdapter from ._registry import register_adapter class AssetsAdapter(DataAdapter): FUSION_MODEL = 'fusion.asset' ENTERPRISE_MODULE = 'account_asset' def list_assets(self, state=None): return self._dispatch('list_assets', state=state) def list_assets_via_fusion(self, state=None): return self._read_fusion('fusion.asset', state=state) def list_assets_via_enterprise(self, state=None): return self._read_fusion('account.asset', state=state) def list_assets_via_community(self, state=None): # No assets feature in pure Community — return empty list with a hint. return [] def _read_fusion(self, model_name, state=None): """Shared shape between fusion and enterprise (both use account.asset-like API).""" Model = self.env[model_name].sudo() domain = [] if state: domain.append(('state', '=', state)) records = Model.search(domain, limit=200) out = [] for r in records: out.append({ 'id': r.id, 'name': getattr(r, 'name', None), 'state': getattr(r, 'state', None), 'value': getattr(r, 'original_value', None) or getattr(r, 'acquisition_cost', None), }) return out register_adapter('assets', AssetsAdapter)