The value of a field, added to the view because it is a depends, may not be
correctly computed if it is missing its own depends.
issue9828
review292751003
The client may not send the values for the xxx2Many if they have not been
loaded. So in order to provide proper changes to apply once the values are
loaded we must base those changes on the current data stored.
issue9719
review308391002
By using a class with slots instead of standard dict, we can reduce a lot the
memory usage to store the record data in the caches and values.
Also we can rely on the data in the cache to exist only for real field which
can be used to create a fast path in ModelStorage.__getattr__.
As now storing data in the cache has no extra cost, we can store data from the
transactional cache in the local. This allow also to have a shorter path in
ModelStorage.__getattr__.
For more memory efficiency, we remove the record from the cache instead of
clearing them. It was better to clear a dict but a record is less expensive to
re-instantiate than clearing.
issue9369
issue9225
review297861002
The rev 596528aa0139 introduced a new API for related values. The rec_name set
by ModelView._changed_values must follow this new API to be used as cache by
the clients.
issue8637
review280081004
If the client does not send the value for the One2Many (it happens when it is
not modified), we must assume that it has the stored value unchanged. Otherwise
the current records are considered as to be added but with only their changed
values.
issue8605
review265901016
The server adds to the definition of the fields, the definition of relation
fields up to specific deep level.
The clients use this relation fields definition to extend the domain parser
with those fields using a dot notation. But those "dotted fields" are not
shown in the search filter to not bloat the popup as it is dedicated to
learning.
In addition, Dict fields are also filled with relation fields coming from the
keys defined in the schema model. As the size can very large, it is possible
to deactivate this feature from the configuration.
issue8293
review259391005
Since the refactoring from a57cd35eec06, we loop only on fields in __setup__
so button_change are not processed. And __change_buttons is not filled.
We fill it in the __post_setup__ when the _buttons dict is filled when values.
issue8329
The client uses the id of the view received by fields_view_get to construct
the URL so it must be the one requested to ensure to have the same view.
issue7988
review275081002
- remove invalid escape sequence
- use read_file instead of read_fp
- use importlib instead of imp and __import__
- use callable instead of instance of collections.Callable
- fix silent file closing
- replace SafeConfigParser by ConfigParser
- replace decodestring by decodebytes
- replace encodestring by encodebytes
issue7666
issue7390
review53361004
There is no need to create the graph step by step with only dependencies
already registered as far as the depth computation is propagated to all the
children.
Instead of searching level by level the nodes to iterate, it is faster to use
the sort of Python.
create_graph does not need to return its internal states but only the graph.
The ir.module activate and update method does not need to check for missing
dependencies because it is already checked at startup.
issue7466
review45211002
An option is added on RPC definition to enforce uniqueness of records
instantiated. The key methods ModeView.button and Workflow.transition have an
assert to detect error in development code.
issue6184
review36411002
This allows to have the 'rec_name' set for xxx2One and Reference field but we
need to ensure that even the initial values are returned because the instance
does not come from the client.
issue6579
review40471002
The __rpc__ attribute is currently filled by method in ModelView. Allowing
fields to define themselves what endpoints should be remotely callable make
this process more flexible.
issue4044
review30991002
The button_change is similar to the on_change, they run under a read-only
transaction so there is no need to check the access right like it is done for
the button.
issue5983
review26841002