We make the assignation twice if any field has a context defined. This ensures
that the context will be evaluated with all initialized values when
the target records will be instantiated.
issue8586
review282041002
When the field is a relation, the field name can not be used to inverse the
domain because the record evaluated it the Relation. So we inverse the domain
with all the field in the domain until find one invalid. If we find any then we
raise a generic error.
issue8597
review270141002
- Use static default converter
- Remove skip_zeros as alignment will not work any way
- Manage None value
- Translate labels
- Split tests
issue7443
review257891002
The table is a hot spot for contention so we must minimize the duration lock
are kept on it. As at the start of a transaction, the cache may be sync and so
it locks all the row in the table, the transaction used for this query should
not be the main one that lasts a long time. Idem for the commit.
issue8447
review283591002
We add to DomainValidationError the invalid domain and the field definition so
the client can format and append it to the description of the error.
issue8288
review255351002
None can not be compared to a class so we always use strings to order before
grouping. Also dictionary can not be compared neither.
issue8265
review253351002
Field may have a context defined so when it instantiate a relational record,
the field should set this context like when the record is read from the
database in ModelStorage.__getattr__.
And when such field is read as related field, the context should also be set.
issue8225
review287171002
Those attributes are stored as StringPartitioned and each part creates its own
translation record. The translated strings are constructed by concatenation of
each translated part.
issue8040
review46731002
When the clear timeout of the cache is zero, we launch a thread to synchronize
caches if the back-end support channels.
The thread is started on the first call to sync for the database.
The channel is also used to clear the cache of the process initiating the
clearing. This allows to test the mechanism is working with a single process.
So there will be a small delay even on single instance.
issue8027
review68431002
If the record has been removed from the XML file, the db_id field will be
required. So we must not update it and let convert delete the data in
post_import.
issue8051
review70521002
We can not recursively call Bus._listen when holding the lock because it
blocks all subscription until the listener stops.
The tearDown of the test should ensure the listener is really stopped before
ending.
issue8039
review52611002