mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 10:12:05 +02:00
24 lines
1,005 B
Python
24 lines
1,005 B
Python
from odoo import models
|
|
|
|
from odoo.addons.datamodel.core import MetaDatamodel, _datamodel_databases
|
|
|
|
from .core import ModelSerializer
|
|
|
|
|
|
class DatamodelBuilder(models.AbstractModel):
|
|
_inherit = "datamodel.builder"
|
|
|
|
def load_datamodels(self, module, datamodels_registry=None):
|
|
res = super().load_datamodels(module, datamodels_registry=datamodels_registry)
|
|
datamodels_registry = (
|
|
datamodels_registry or _datamodel_databases[self.env.cr.dbname]
|
|
)
|
|
for datamodel_class in MetaDatamodel._modules_datamodels[module]:
|
|
self._extend_model_serializer(datamodel_class, datamodels_registry)
|
|
return res
|
|
|
|
def _extend_model_serializer(self, datamodel_class, registry):
|
|
"""Extend the datamodel_class with the fields declared in `_model_fields`"""
|
|
if issubclass(datamodel_class, ModelSerializer):
|
|
new_class = datamodel_class._extend_from_odoo_model(registry, self.env)
|
|
new_class._build_datamodel(registry)
|