romainq
|
4b36e9e017
Obsolescence: introduction of this new concept (wording could change later). The obsolescence of an object is computed after other attributes, by the mean of an OQL expression. The code has been refactored (again) so as to factorize between the computation of friendly names and the computation of obsolescence flags. The refactoring involved a significant AND RISKY change: external key friendly names (magic attributes) have been changed from AttributeFriendlyName to AttributeExternalField, which simplifies the SQL query build logic.
|
8 年之前 |
romainq
|
34ab6cd77b
NEW! Archiving data. Archiving is a soft delete. It can be undone. Enter the archive mode to see all the data including archives (everything is read-only in that mode). Archiving must be enabled per class (data model). Archiving is achieved by the mean of the API DBObject::Archive (or Unarchive).
|
8 年之前 |
romainq
|
43d294e036
Internal: query arguments could be array values, making it easier to build dynamic IN() clauses
|
9 年之前 |
romainq
|
353e6a0ffc
OQL arguments: when the value of a query argument is null, it must be considered as being a valid argument (was reported as missing). Improved the error reporting when the argument is in the form :this->attcode and the attcode is not valid for the class of 'this'.
|
9 年之前 |
romainq
|
0dff1739a5
Internal: fixed the verb DBObjectSearch::IsAny
|
9 年之前 |
dflaven
|
cda7f3861f
Code refactoring to make the OQL parsing self contained in the "oql" subdirectory.
|
9 年之前 |