[Cosmo-dev] Recurrence modifications, filters, and diffs

Randy Letness randy at osafoundation.org
Mon Feb 12 07:12:38 PST 2007


Brian Moseley wrote:
> there are really three states for a modification attribute:
>
> * has a value: <noteMod:reminderTime>thevalue</noteMod:reminderTime>
> * has no value (None in python, null in java): <noteMod:reminderTime />
> * is "missing": <noteMod:reminderTime eim:missing="true" />
>
> only modification attributes can be "missing". this state tells
> chandler and the cosmo ui that the attribute should be inherited from
> the master item. it tells cosmo to copy the attribute value from the
> master when exporting the modification to icalendar for caldav.
>
> alarms on event modifications can also be "missing".
>
> the challenge for cosmo in 0.6.1 is how to persist this "missing" state.

One way to do this:

* has a value: Item has an Attribute with a non-null value
* has no value: Item has an Attribute with a null value
* is "missing": Item does not have an Attribute

We would have to change the model by adding attribute getters that 
return the Attribute (StringAttribute, TimestampAttribute, etc) instead 
of the Attribute's value.  Also, this only works for data stored as 
Attributes.  This wouldn't work for things like triageStatus, 
displayName, or any data that is stored as individual columns in the 
database.

-Randy


More information about the cosmo-dev mailing list