[Design] Re: Smart Auto-triaging of new events on the calendar
Bryan Stearns
stearns at osafoundation.org
Mon Jul 10 14:46:52 PDT 2006
Whew - That first sentence should've been "I don't think that the 'ideal
design' given below _is_ any harder to implement than any of the
others", though even rereading that confuses me. :-)
Bryan Stearns wrote:
> Mimi,
>
> I don't think that the 'ideal design' given below isn't any harder to
> implement than any of the others.
>
> I think all the approaches discussed so far are going to require a
> little piece of code to return "the value to sort by or display for
> this item". (Where this code lives, or how it's found, is still to be
> decided, but the point is that I don't think there's a declarative
> purely-structural way to specify any of the behaviors you've
> suggested. As long as we've come up with a way to call that little
> piece of code, I don't think any of the approaches are hard.
>
> ...Bryan
>
> Mimi Yin wrote:
>> In the Alpha 4 Dashboard Spec, Sheila and I simplified the behavior
>> of the Date column. However, she dug up this use case last week,
>> which points out some of the usability problems of our simplified design.
>> *
>> *
>> *Q. What if you set a custom-date Tickler on an event that fires
>> after the event has happened? e.g. You want a reminder to fire after
>> every staff meeting to write-up and post the meeting notes.*
>> *
>> *
>> *Q. What if the custom-date Tickler has already past? What date
>> should we display? The tickler date? which has past? or the event
>> date which may or may not have past?*
>>
>> This also touches on some issues Mitch brought up in our Spec review.
>>
>> Alpha 4 Design:
>> + If the item is an event, show the event date/time
>> + If the item has been assigned a custom-date tickler, show the
>> custom-date tickler
>> + If the item is neither an event nor assigned a custom-date tickler,
>> display
>> *
>> *
>> Ideal design:
>> + Always display the NEXT important date.
>> + If both the custom tickler and event dates/times have past, in
>> other words, if there is no NEXT important date, display the event date.
>> + If the custom tickler date has past and there is no event
>> date/time, keep displaying the custom tickler date.
>>
>> Always displaying the NEXT important date, be it the event date or a
>> custom tickler date, would be consistent with the way we display
>> dates when an item has neither an event date or a custom tickler
>> date. Non-event, non-tickled items display the MOST RECENT important
>> date (Date sent, Date modified, Date created), whichever happened
>> most recently.
>>
>> Always displaying the custom tickler date, if there is one, is what
>> we have spec'd out currently, and is more consistent with the
>> workflow of allowing users to set ticklers in-line, in the
>> Reminder/Calendar stamp column of summary table view. (It would be
>> confusing to set a tickler in the summary table and then have it
>> revert back to show the event date/time. It might make you think your
>> tickler date didn't stick.)
>>
>> *So, what are our options?*
>>
>> 1. We can ignore this use case for now and worry about it after Alpha
>> 4. This would be in line with the spirit of 'focusing on the basics
>> for Dashboard' in Alpha 4.
>>
>> 2. We could implement the 'ideal design' and turn off in-place
>> editing for the Reminder/Calendar stamp column.
>>
>> *Questions:*
>> + Does anyone have any specific examples of when they would set a
>> custom-date tickler to fire after an event?
>> + Is the 'ideal design' much harder to implement than what we have
>> spec'd out for Alpha 4?
>>
>> *
>> Mimi
>>
>> *
>>> On Jul 9, 2006, at 4:46 PM, Sheila Mooney wrote:
>>>
>>>
>>>> Mimi,
>>>>
>>>> If you you create an event for today ie: 3pm and you have an alarm,
>>>> I didn't think it popped into the NOW section until the alarm went
>>>> off. Maybe I am confused between events created today and events
>>>> (for today) that were created at some time in the past.
>>>>
>>>> Sheila
>>>>
>>>>
>>
>> On Jul 6, 2006, at 7:52 AM, Bryan Stearns wrote:
>>
>>> Mimi,
>>>
>>> You wrote:
>>>> On the calendar canvas, instead of setting all new events to NOW,
>>>> we should set triage status on event items in terms of where they
>>>> live on the calendar canvas relative to your current place in time.
>>>>
>>>> + For example, events created in the future (ie. after Today) are
>>>> set to LATER.
>>>> + Events created for Today are set to NOW.
>>>> + Events created in the Past are set to DONE.
>>>>
>>>> + If it is 3PM and you create an event for 10AM Today, the event
>>>> should be set to DONE.
>>>> + If it is 3PM and you create an all-day or anytime event for
>>>> Today, the event should be triaged as NOW.
>>> Those five are straightforward enough - I think it breaks down to
>>> this, done by the calendar canvas as part of creating the event:
>>>
>>> if start > now and start.date() != now.date():
>>> triageStatus = LATER
>>> elif end < now:
>>> triageStatus = DONE
>>> else:
>>> triageStatus = NOW
>>>
>>> However...
>>>> + If you create a multi-day event that starts before Today, but
>>>> ends either Today or after Today, the event should be set to NOW.
>>>> + If you create a multi-day event that starts Today but ends after
>>>> Today, the event should be set to NOW.
>>> I think the only situation where we can pre-set triage status is on
>>> *initial creation* of an event where the time is already known: that
>>> is, when the user double-clicks on a canvas to create an allday
>>> event (if in the allday/anytime area) or a one-hour event (if in the
>>> timed area). Everything the user does after this (like turning the
>>> original event into a multi-day event by drag-extending it on the
>>> calendar canvas, or editing fields in the detail view) are edits to
>>> an existing event.
>>>
>>> We could update triageStatus with the above logic (or something like
>>> it) whenever the user edits one of (start, end, timezone, allDay,
>>> anyTime), but I think that'd be weird... alternatively, if/when we
>>> change events to allow them to not have a start date/time until the
>>> user fills it in (which isn't quite as simple as it sounds), then we
>>> could set triage status as part of the user's first entry of a valid
>>> start date/time (assuming we're still assuming that timed events are
>>> an hour long by default).
>>>
>>> ...Bryan
>>>
>>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>>>
>>> Open Source Applications Foundation "Design" mailing list
>>> http://lists.osafoundation.org/mailman/listinfo/design
>>
>
> ------------------------------------------------------------------------
>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> Open Source Applications Foundation "Design" mailing list
> http://lists.osafoundation.org/mailman/listinfo/design
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osafoundation.org/pipermail/design/attachments/20060710/0f0347b9/attachment.htm
More information about the Design
mailing list