# HG changeset patch # User Todd Larsen # Date 1227203691 0 # Node ID 6cd4f44891e56f703ae331711d9c6b1a0646f45f # Parent e8acc0a907fbea351a979bcd2eac968138ff9ca6 id() is a built-in function in Python, so rename the property to link_id. Add a scope_path StringProperty to cache the string representation of the transitive closure of the nested scopes of an entity. Patch by: Todd Larsen diff -r e8acc0a907fb -r 6cd4f44891e5 app/soc/models/linkable.py --- a/app/soc/models/linkable.py Thu Nov 20 16:07:40 2008 +0000 +++ b/app/soc/models/linkable.py Thu Nov 20 17:54:51 2008 +0000 @@ -90,10 +90,10 @@ #: Required field storing "ID" used in URLS. Lower ASCII characters, #: digits and underscores only. Valid link IDs successfully match #: the LINK_ID_REGEX. - id = db.StringProperty(required=True, + link_id = db.StringProperty(required=True, verbose_name=ugettext_lazy('Link ID')) - id.help_text = ugettext_lazy( - '"ID" used in URLs.' + link_id.help_text = ugettext_lazy( + '"ID" used when creating URL links.' ' Lower ASCII characters, digits, and underscores only.') #: Optional Self Reference property to another Linkable entity which defines @@ -104,3 +104,16 @@ scope.help_text = ugettext_lazy( 'Reference to another Linkable entity that defines the "scope" of' ' this Linkable entity.') + + #: Hidden (not displayed to users or editable in forms) cache of the string + #: representation of the transitive closure of scopes, for use in URLs. + #: The multiple queries required to produce this string for entities in + #: deeply-nested scopes can be prohibitively expensive. The scope of an + #: entity is not expected to change frequently (only for move, copy, and + #: maybe re-parenting operations), so this property is not likely to need + #: updating. + scope_path = db.StringProperty(required=False, + verbose_name=ugettext_lazy('Scope path')) + scope_path.help_text = ugettext_lazy( + 'Cache of the string form of the entity scope.') +