A generic object supporting programmatic definition of its standard fields, declarative definition of custom fields (in trac.ini) and keeping track of change history has been created, by generalizing the base Ticket code.
The database tables still need to be independently defined (right, still :-), but the standard fields can be programmatically provided, and any custom fields can be just declared in trac.ini, with the same syntax as for custom Ticket fields.
Test objects have been implemented as subclasses of this class, so they also benefit these capabilities.
Also, a special sub-class has been created for objects wrapping Wiki pages, i.e. which are based on wiki pages, but with additional fields. Test catalogs and Test cases are as such.
Thus, the following objects have now support for custom properties and for keeping track of change history:
- Test catalogs
- Test cases
- Test plans
- Test case in a test plan (i.e. with a status)