Commit History

Author SHA1 Message Date
  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 years ago
  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 years ago
  romainq 43d294e036 Internal: query arguments could be array values, making it easier to build dynamic IN() clauses 9 years ago
  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 years ago
  romainq 0dff1739a5 Internal: fixed the verb DBObjectSearch::IsAny 9 years ago
  dflaven cda7f3861f Code refactoring to make the OQL parsing self contained in the "oql" subdirectory. 9 years ago