[Chandler-dev] Stamping and Dashboard domain-model questions
Bryan Stearns
stearns at osafoundation.org
Mon Jun 12 13:44:22 PDT 2006
(forgot to CC the list)
Grant,
I made the list below while trying to figure out upcoming tasks related
to stamping and the dashboard in the UI... I'm not sure in whose
bailliewick these reside, but I thought I'd bring them up with you to
see if you'd considered them, or had opinions...
* What's the state of the discussion about whether we should use
annotations for stamping? (many subquestions here: How do I know what
stamps an item has? How will the attribute editor mechanism need to
change? The attribute editor mechanism decides how to present an
attribute based on its schema type; this attribute is specified as a
simple name ("startTime") in definitions of instances of AEBlocks
(detail view) and Columns (tables). Is it enought to simply change to a
dotted python class name (eg, "osaf.pim.CalendarEventMixin.startTime"?)
* What of attribute redirection remains at the domain-model level? The
dashboard spec calls for editing of attribute-redirected columns like
Who and Date - how is this implemented in a world where duck-typing no
longer works for stamped attributes?
* Does column sorting always imply another repository index on each
user-visible collection? It seems like either the comparison function
needs to take into account all the possible conditions that affect
sorting (so the function for the communications column needs to consider
whether the item is stamped as communications, and if it is,
read/unreadness, draft-ness,
inbound/outbound-edited/outbound-queued/outbound-sent, whether it needs
a reply, whether it's first-time or updated, error state, and triage
status; the Date column depends on tickler time and condition, start &
end datetime if stamped as event, date last modified, date sent if
stamped as comm, and date created), and the index needs to be updated
(and collection notifications need to fire) if any of these underlying
conditions change. (Having date-last-modified in this list means there
are going to be a lot of potential index updates happening!)
* The Dashboard spec says the triage column is sorted Now, Later, Done,
and within Done by the date that the Done status was set. (This implies
a triageValueChangedDate attribute - is there a way to get the
repository to enforce updating this value when the triage attribute is
changed -- I'm guessing we'll need some similar repository-level
mechanism to set and update the date-created and date-last-modified
attributes.
* Further, the triage-status column isn't supposed to have user changes
take effect until the user hits a Purge button; this seems to imply that
we'll need a separate attribute to store the pending triage state, and
copy it to the real triage attribute when the user hits the button. Are
there issues around conflicts that we need to deal with here? (What
happens if triage status changes automatically between the user's edit
and the user's Purging?)
In the event-updates realm, I'm not sure how to address how to address a
couple of requirements:
* When the user edits a received emailevent, the Send button is supposed
to be enabled. At what level should this happen? (It seems bad to
require that anything that changes an item attribute also consider
whether that change constitutes a sendable update, but I'm not sure we'd
implement it at the repository level, either, given that selecting an
item in the UI currently changes it.)
* The stamping spec implies that the user-visible To/From/CC fields
aren't necessarily the To/From/CC fields in the RFC822 message (though
it seems to imply that the Sender attribute is the From on the email)...
How are these fields managed for items that could be coming & going at
the same time?
...Bryan
More information about the chandler-dev
mailing list