[Chandler-dev] It's 'about' time to deal with redirections...

John Anderson john at osafoundation.org
Tue Oct 31 17:49:03 PST 2006


+1

Bryan Stearns wrote:
> The time has come to deal with a couple of issues around attribute 
> redirection:
>
> - We need to index 'who' and 'about' attributes for the dashboard, but 
> (a) the repository can't index an attribute that's the _source_ of a 
> redirection (the index gets out-of-date really quickly, leading to 
> several of my alpha5 bugs), and (b) for 'who', a static redirection 
> isn't good enough because the 'who' value needs to be determined on a 
> per-item (not per-subclass or per-annotation) basis.
>
> - A related issue is that we're trying to get rid of the dependence on 
> the repository's generic 'displayName' mechanism on Item; currently, 
> 'about' redirects to 'displayName' by default (in ContentItem), but is 
> overridden in several Item subclasses and Annotation classes.
>
> We currently have a mechanism for the Date column that works like this:
> - ContentItem has a 'relevantDate' attribute that is indexed and 
> displayed in the Date column of the dashboard view. There's also a 
> 'relevantDateSource' attribute that's currently used to display the 
> source of the selected item's Date value (though it's currently not 
> localized).
> - Items (either ContentItem, its subclasses, or annotations on 
> ContentItem) that want to provide a relevant date do so by 
> implementing schema.observers that call 
> ContentItem.updateRelevantDate() when a related date attribute changes.
> - ContentItem.updateRelevantDate() calls AddRelevantDates() on itself 
> any stamping annotations, and the Remindable annotation, and picks one 
> to update 'relevantDate'/'relevantDateSource'.
>
> I'm proposing that I do something similar for 'who', though I now 
> think that 'relevantDate'/'relevantDateSource' would be better named 
> 'displayDate' and 'displayDateSource'; I'd do that, and make the 'who' 
> fields be 'displayWho'/'displayWhoSource'.
>
> We don't appear to need the same dynamic-ness for 'about' as well, so 
> at least for now, I'd get rid of the redirections from 'about' to 
> 'displayName': we'd index 'displayName' instead of 'about'. Any 
> ContentItem subclasses or Annotations that wanted to have their own 
> name for the displayName could use a redirectTo as they do now; 
> however, anyone who redirected 'about' to some other field would need 
> that redirection replaced by one to 'displayName' -- for example, the 
> Amazon parcel has a ProductName attribute and used to redirect 'about' 
> to it; now, it would have a redirection from 'ProductName' to 
> 'displayName' instead.
>
> If we need to show alternative names for the field in the UI, such as 
> 'Subject' if it's an email, and 'Product Name' if it's an Amazon item, 
> a separate mechanism will be built to look up a localized name at 
> display time.
>
> To allow the repository to stop supporting a generic 'displayName' 
> mechanism, we'd declare a concrete schema.Text 'displayName' attribute 
> on ContentItem.
>
> Comments?
>
> Thanks,
> ...Bryan
>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> Open Source Applications Foundation "chandler-dev" mailing list
> http://lists.osafoundation.org/mailman/listinfo/chandler-dev


More information about the chandler-dev mailing list