On Tue, Jan 14, 2014 at 10:54 PM, Sergi Almacellas Abellana <
se...@koolpi.com> wrote:

> >Is there a base model that I could inherit from or any other means in
> >order
> >to add fields, methods, ... to all models at once in a module ?
>
> AFAIK you must inherit models one by one.
>
> We can give more help if you explain your prupose.
>

Well I can think of many use cases but concretely, I'd like to add one or
more fields to all models actually present and all the one that will be
installed further (hence I was hoping that tryton models were built out of
a "root.model" alterable per database that all other models would inherit
from)

Then I would use one of those added field to "tag" every object of every
models that I want to expose to my host application. It would also allow me
to overload read(), search(), ... on all models in order to update the
domain before calling super() according to an opt-in in the context. Then I
would overload fields_view_get() 's "arch" for all models in order to
"monkey patch" the form views and add the "tag" field in them.

But I have other use cases, eg : another field would be a json represented
cache of the tagged objects by overloading create() and write() of all
models, allowing one to define a "schema" of the json cache so it can fetch
some relations too, storing it in a json_cache field or memcached.

Well, you see... that kind of stuff. Having the possibility to overload the
lower level model layer seems a powerful feature to me. You can really bend
the system to your needs and design your application storage the way you
want. I guess you might propose alternative to each of my use cases but it
would be so easy if it just worked using the traditional inheritance scheme
of tryton.

Regards.

Reply via email to