Edgewall Software

Opened 8 years ago

Last modified 5 years ago

#11648 closed enhancement

Model classes should have a resource property — at Initial Version

Reported by: Ryan J Ollos Owned by:
Priority: normal Milestone: 1.1.3
Component: general Version:
Severity: normal Keywords: model
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:


The Changeset, Milestone and Node classes have a resource property while the Attachment, Ticket, Repository and WikiPage classes create the resource attribute in their __init__ method.

Having resource as a property seems simpler since we don't have to worry about updating the resource attribute as the object changes. For example: tags/trac-1.0.1/trac/ticket/model.py@:252#L236. As a property, resource will be implicitly updated as the object changes.

With this change and the one in #11609, if we ever find it worthwhile to create a ModelBase class it will be clear that resource and realm should be abstract properties (decorated with abc.abstractproperty). I also wanted to make this change ahead of modifying the Component and Version classes in #1233 so that the pattern to follow is clear.

Change History (0)

Note: See TracTickets for help on using tickets.