Open Bug 1301643 Opened 8 years ago Updated 2 years ago

Make date grouping week based.

Categories

(Thunderbird :: Mail Window Front End, enhancement)

enhancement

Tracking

(Not tracked)

People

(Reporter: jorgk-bmo, Unassigned)

References

(Blocks 1 open bug)

Details

+++ This bug was initially created as a clone of Bug #505981 +++

=== Quote ===
Grouping should be made on calendar weeks instead. John Wilcock proposed to split that in "Earlier this week" and "Last week" based on calendar weeks.
===

Something like:
Today
Yesterday
Earlier this week (can be empty)
Last week
(Ricky Zhang, bug 505981 comment #56, is suggesting something with months.)
Older.
A string for "Earlier last week" will also be necessary (if yesterday was the end of last week).
And then maybe "The week before the last" or something?
If someone states "Last week" on a friday, when exactly does one take that to be?  How about if it's on a saturday?  Or sunday?  Almost always a discussion ensues to clarify precision.  Using 'week' is simply confusing and imprecise.  It is best avoided.
The discussion I have with my friends frequently is: What does "next Friday" mean. If today is Thursday, does it mean tomorrow? Anyway, I have settled for "next Xday" to mean: The Xday in the next/coming week. So if today is Sunday, next Monday is tomorrow, if the week starts on a Monday.

Last week would therefore be the previous/preceding week, but I agree that this is fraud with problems. It's not so bad if the software clearly defines it, it's worse when you make a date next Wednesday and miss each other by a week ;-)
Severity: normal → enhancement
(In reply to Rimas Kudelis from comment #1)
> A string for "Earlier last week" will also be necessary (if yesterday was
> the end of last week).
> And then maybe "The week before the last" or something?

(In reply to alta88 from comment #2)
> If someone states "Last week" on a friday, when exactly does one take that
> to be?  How about if it's on a saturday?  Or sunday?  Almost always a
> discussion ensues to clarify precision.  Using 'week' is simply confusing
> and imprecise.  It is best avoided.

Sorry, I disagree with both of you.

If it's been established that we're only talking about the Gregorian calendar at this point, and only modern / current day versions of said calendar (ie: 7 day weeks), then a "week" is well established. 

The only thing that really varies from place to place (today, in 2016) is what is considered the "first day" of the week, which is typically either Sunday, Monday or Saturday (https://en.wikipedia.org/wiki/Week#Week_numbering).

So "Last Week" on a Friday, is the same as "Last Week" on any other day. It's the 7 day period previous to the current 7 day period, dependent only on what is the first day of the week. 

If you're in North America then your "first day" will generally be Sunday, so if it's Sunday today and you say "Last Week", it's the last 7 days ending yesterday (and although in normal speech one probably wouldn't verbally say "last week" when "talking" about yesterday .. you'd just say "yesterday" .. it's still technically accurate). If it's Saturday today and you say "Last Week", then it's STILL the same 7 days ending on the last Saturday. 

Note this is a technical definition of "Last Week", not a discussion of how "yesterday" fits in (for that read on below). However, in my opinion, that is neither confusing, NOR imprecise, quite the opposite, it's in fact very technically precise. 

As for how the groupings should be defined:

* Today and Yesterday are obvious, and presumably should ALWAYS be the first 2 groupings.

* This Week (or "Earlier This Week" if you prefer) - Is from the first calendar day of this week "to two days ago" inclusively, as "Yesterday" will already cover "one day ago". The grouping becomes unnecessary and should be omitted when today is the first or second day of this week, which are already covered by "Today" and "Yesterday". 

* Last Week - Begins from the first day of the previous week, and ends on either: A. If today is the first day of this week, then ends two days ago inclusively (as "Yesterday" would already cover the last day of Last Week), or B. If today is not the first day of the week, then ends on the last day of the previous week. 

- "Earlier last week" is an unnecessary distinction, it's all just "Last Week" any way you look at it. 

Yes, if Today is the first day of this week, then Yesterday is obviously the last day of Last Week. So you can either: A. Not include a "Yesterday" grouping when today is the first day of the week, or B. DO include a "Yesterday" grouping, but exclude anything from yesterday from the "Last Week" grouping. I'd lean towards B, but neither option is difficult or confusing.

- "The week before the last" (ie: "Two weeks ago"), is also unnecessary, as that falls under "Older".

So you end up with the following (with Sunday as the first day of the week in this example).

On Sunday September 4th:
* Today = Sun, Sep 4th 00:00 to 23:59:59.999
* Yesterday = Sat, Sep 3rd 00:00 to 23:59:59.999
* This Week = omitted / not applicable
* Last Week = Sun, Aug 28th 00:00 to Fri, Sep 2nd 23:59:59.999
* Older = Everything before Sun, Aug 28th

On Monday September 5th:
* Today = Mon, Sep 5th 00:00 to 23:59:59.999
* Yesterday = Sun, Sep 4th 00:00 to 23:59:59.999
* This Week = omitted / not applicable
* Last Week = Sun, Aug 28th 00:00 to Sat, Sep 3rd 23:59:59.999
* Older = Everything before Sun, Aug 28th

On Tuesday September 6th:
* Today = Tue, Sep 6th 00:00 to 23:59:59.999
* Yesterday = Mon, Sep 5th 00:00 to 23:59:59.999
* This Week = Sun, Sep 4th 00:00 to 23:59:59.999
* Last Week = Sun, Aug 28th 00:00 to Sat, Sep 3rd 23:59:59.999
* Older = Everything before Sun, Aug 28th

On Wednesday September 7th:
* Today = Wed, Sep 7th 00:00 to 23:59:59.999
* Yesterday = Tue, Sep 6th 00:00 to 23:59:59.999
* This Week = Sun, Sep 4th 00:00 to Mon Sep 5th 23:59:59.999
* Last Week = Sun, Aug 28th 00:00 to Sat, Sep 3rd 23:59:59.999
* Older = Everything before Sun, Aug 28th

On Thursday September 8th:
* Today = Thu, Sep 8th 00:00 to 23:59:59.999
* Yesterday = Wed, Sep 7th 00:00 to 23:59:59.999
* This Week = Sun, Sep 4th 00:00 to Tue Sep 6th 23:59:59.999
* Last Week = Sun, Aug 28th 00:00 to Sat, Sep 3rd 23:59:59.999
* Older = Everything before Sun, Aug 28th

On Friday September 9th:
* Today = Fri, Sep 9th 00:00 to 23:59:59.999
* Yesterday = Thu, Sep 8th 00:00 to 23:59:59.999
* This Week = Sun, Sep 4th 00:00 to Wed Sep 7th 23:59:59.999
* Last Week = Sun, Aug 28th 00:00 to Sat, Sep 3rd 23:59:59.999
* Older = Everything before Sun, Aug 28th

On Saturday September 10th:
* Today = Sat, Sep 10th 00:00 to 23:59:59.999
* Yesterday = Fri, Sep 9th 00:00 to 23:59:59.999
* This Week = Sun, Sep 4th 00:00 to Thu Sep 8th 23:59:59.999
* Last Week = Sun, Aug 28th 00:00 to Sat, Sep 3rd 23:59:59.999
* Older = Everything before Sun, Aug 28th

On Sunday September 11th:
* Today = Sun, Sep 11th 00:00 to 23:59:59.999
* Yesterday = Sat, Sep 10th 00:00 to 23:59:59.999
* This Week = omitted / not applicable
* Last Week = Sun, Sep 4th 00:00 to Fri, Sep 9th 23:59:59.999
* Older = Everything before Sun, Sep 4th
(In reply to Jorg K (GMT+2, PTO during summer) from comment #3)
> The discussion I have with my friends frequently is: What does "next Friday"
> mean. If today is Thursday, does it mean tomorrow? Anyway, I have settled
> for "next Xday" to mean: The Xday in the next/coming week. So if today is
> Sunday, next Monday is tomorrow, if the week starts on a Monday.
> 
> Last week would therefore be the previous/preceding week, but I agree that
> this is fraud with problems. It's not so bad if the software clearly defines
> it, it's worse when you make a date next Wednesday and miss each other by a
> week ;-)

Except we're talking about labels in an email program used for grouping of messages... not language in a casual conversation or other communications.
(In reply to Jorg K (GMT+2, PTO during summer) from comment #3)
> The discussion I have with my friends frequently is: What does "next Friday"
> mean. If today is Thursday, does it mean tomorrow? Anyway, I have settled

Next means you skip one, "on Friday" is tomorrow, "next Friday" is really the day in 8 days. 
Sure, this is often wrong in speech...

Agreed with Luc, there's no ambiguity of what the week is and when it starts. Maybe it's cultural, but that's pretty strong around here.
I TOTALLY agree with comment 4. Please Please Please I want this feature badly for I forgot how long.

As a native Chinese speakers living in US, last week is well defined time concept in both China and America. Maybe I'm an ignorant to other culture or other alien's planet, where 7 days a week doesn't apply and there is no start day of a week. 

@alta88 Could you please explain to me in your culture or planet:

1. How many days in a week?
2. Which day is the start day of a week?

As long as you can answer me, I can give you a WELL-DEFINED and PRECISE formalized time interval.

PS: Remember grouping is for the past. Any future terms such as "next" or "tomorrow" are irrelevant.
(In reply to Luc Mousseau from comment #5)
Thanks for your elaborate comment, but it demonstrates what can be summarized as: using "week" is confusing.

There is *no* way that "Last week" is less confusing or more precise than "Last 7 days". There is *no* way in which "Last week" doesn't take a bit more (or much more, for those unlike all the science computers[1] commenting here) brain processing to consider the recentness.

No one says or reads "Last week" on a Monday (first week day, eg) to mean the preceding Sunday, though it technically is. "Last week" is a generalization that means "having occured sometime before the preceding weekend".


(In reply to Ricky Zhang from comment #7)
It may amuse you to know I once lived in China and got to drawing 2k duo zi, in the era where knowledge of both fanti and jianti forms were required. Yet I wouldn't presume to argue whether shang ge xing qi was precise or not with a native speaker, which I will never be in chinese and you will never be in english.  So, for all the non en commenters - take it up with your localizers.  The reference language here is english[2].

1. Funny en-US reference to sports comedy.
2. Please, skip the fortnights.
@alta88
My wife is a native English speaker. She told met that American who go to church or who has a Monday-to-Friday mundane job has a universally accepted concept of what last week means. If you argue that she is speaking American instead of English, I can't argue with you any more. Maybe in your planet there are 10 days in week and the start day of the week is irrational number e. 

Regarding to your concern how to read "last week' on a Monday: Sunday is a Church day. Every church people knows that it is NOT in the last week category. To working people, Sunday is not a working day. Personally, I don't read my business email on Sunday. So if you group them to last week incorrectly, I'm sure I will miss them.


PS: The following is off topic. 

But I'm willing to tell you because I'm waiting for US open final starts. As native Chinese speaker, Pinyin is a confusing romanization language system in China created by communists. There are four tones in Mandarin. But Pinyin has no tone. Even you get the tone and roman character spelling write, it still may have more than one Chinese character pronouncing the same way. So honestly I don't follow what you says "2k duo zi". I could guess -- traditional Chinese and simplified Chinese. You are good at creating confusion anyway.

TBH, I don't know why I feel so frustrated about arguing with you on grouping in Thunderbird in a peaceful Sunday afternoon. I have disabled grouping for long long long time. It was broken. It is still broken. It will be broken if anyone follow your suggestion.
The discussions here and with bug 505981 show that that it's simply impossible to implement grouping (by date) in a way that's useful for all.

To me to only way out is if TB let me define my own group boundaries and labels.
Since I filed the bug, I can join the discussion a bit ;-)

I think in weeks, not in 7-day intervals. I think most people who use TB for work do. I will know for sure that something happened last week, but I won't know whether it happened in the last 7 days. That depends on how late in this week it is. So to me "earlier this week" and "last week" make perfect sense. The "week before last" is a little harder, but still useful.
If we do have customized feature, we can do a poll. I believe majority of Chinese will vote for using last week, instead of last 7 or 8 days.

But in reality, we don't. So we need a trade-off.

In terms of usability, I have pointed out that majority of us can naturally refer three days: yesterday, today and tomorrow. So any number which is larger than magic number 3 is not user-friendly at all. Unless you are a nerd, it is very awkward to tell them you have email in last 7/8 days. Therefore, we need a different unit called week on planet earth. The same applies to week: we have last week, this week and next week. Any number larger than 3 should use month.

It is not rocket science to design a user friendly software. Find a non nerd like my wife can tell you what need to be done.
(In reply to Ricky Zhang from comment #12)
> It is not rocket science to design a user friendly software.

Believe me, any serious UX engineer will be offended by your statement. I find doing good UX extremely hard and I'm happy I'm software engineer (or nerd if you will) and not a UX engineer.

(In reply to Ricky Zhang from comment #12)
> Find a non nerd like my wife can tell you what need to be done.

True, except that the design will be totally different if you ask /my/ wife ;-)
(In reply to alta88 from comment #8)
> (In reply to Luc Mousseau from comment #5)
> Thanks for your elaborate comment, but it demonstrates what can be
> summarized as: using "week" is confusing.
> 
> There is *no* way that "Last week" is less confusing or more precise than
> "Last 7 days". There is *no* way in which "Last week" doesn't take a bit
> more (or much more, for those unlike all the science computers[1] commenting
> here) brain processing to consider the recentness.
> 
> No one says or reads "Last week" on a Monday (first week day, eg) to mean
> the preceding Sunday, though it technically is. "Last week" is a
> generalization that means "having occured sometime before the preceding
> weekend".
> 

(In reply to alta88 from comment #8)
> (In reply to Luc Mousseau from comment #5)
> Thanks for your elaborate comment, but it demonstrates what can be
> summarized as: using "week" is confusing.
> 
> There is *no* way that "Last week" is less confusing or more precise than
> "Last 7 days". There is *no* way in which "Last week" doesn't take a bit
> more (or much more, for those unlike all the science computers[1] commenting
> here) brain processing to consider the recentness.
> 
> No one says or reads "Last week" on a Monday (first week day, eg) to mean
> the preceding Sunday, though it technically is. "Last week" is a
> generalization that means "having occured sometime before the preceding
> weekend".
> 

The delineation of a week is *not* the weekend. And in North America, Monday is *not* the first day of the week. If you're in Europe, where apparently Monday *is* the first day of the week, then that obviously shifts everything I noted in my previous comment forward by one day (which I did note by the mention of it being "dependent on what you define as the *first day* of the week"), but everything I said is still 100% accurate. 

A week has 7 days, not 5. A "work week" *may* have 5 days, and when in a discussion you say "Last Week" *you* may *only* be referring to the previous work week (ie: Mon-Fri), however we're not talking about "work weeks" or about it's use in casual conversation, we're talking about the technical definition of a week, and of what is the "last" one of a "week". And in that case, you're 100% wrong. And if you are confused by it, then I'm sorry that you're so easily confused. If today is Monday, then "last week" INCLUDES the previous Sunday (8 days ago) to this past Saturday (2 days ago), because a week *has 7 days*, and in North America the week *begins on Sunday* (ie: the first column on the calendar *is* Sunday *not* Monday).

I don't envy you though.. What happens on September 1st when someone says to you "Last month" and you think, they mean July? Or on January 1st, 2016, when someone said "Last year", and you think they mean 2014? Because both of those are *exactly* the same as your argument about "on Monday". A month is well defined, a year is well defined, and in the same way a week is well defined.

Also for future reference, PLEASE only speak for yourself, you can't possibly know that, quote: *No one* says or reads "Last week" on a Monday (etc)... The most *you* can claim is that *YOU* are confused by it. You'll note that I have made no claims that *nobody would be confused*, I only speak about what is TECHNICALLY accurate, which is the only kind of *accurate* that matters. 

In all seriousness though, I don't see any consensus happening, and so obviously the only solution here will be to implement *BOTH* groupings. This bug should be amended to require both the current grouping by "last 7 days", in addition to the correct usage of "This Week" and "Last Week" by 7 day calendar week. Or as Marcel just noted in Comment 10, allow us to define our own boundaries and labels (although I imagine that would be significantly more complex).
No offense.

I'm a research statistician developer as my job title stated. What I'm doing should not be deemed as  rocket science. I'm supposed to crunching number all days long. But I'm still having trouble in figuring out what last 7/8 days means in my next TB. I'm pretty sure my non nerd wife can't either, given her Math education in US.

To tell if software is user friendly or not is fairly easy: find a non nerd and ask them which one is better. To design user friendly may be harder. But still it is not rocket science.

My nerdy nature feel like it is NP complete problem. To verify a solution is P. But to find a solution is NPC.
Hello all. Please don't make this personal. I think we have established that there are multiple different angles to this problem and there is no shared agreement on what last week means or how it should be configured.

Making suggestions on how this bug should be solved because of personal belief of what "most people" do, or pinpointed data like asking ones wife will not lead to a solution that works for the majority of users. Coordinating user research would be a better use of time.

How easy or hard it is to create good UX is not an issue to be solved in this bug. Please also avoid *emphasizing* words to make your point. It makes the text harder to read and gives your comment a more hostile tenor.

Please keep the discussion on topic and technical. May I also remind you of the Bugzilla Etiquette at https://bugzilla.mozilla.org/page.cgi?id=etiquette.html

Thank you for your time!
Sorry for my previous rude comment.

Grouping by date is a dead simple problem. But we have to ask user to spend time in configuration. I think it is unnecessary to complicate a simple problem, which cause more typing therefore potentially more bugs in TB.

The goal of grouping email by date is to improve usability. But in order to have grouping by date we have to ask for user to provide unnecessary configuration. It is against our original goal.

"Last 7/8 days" is super nerdy label, whoever comes up this idea to cover the bug that we can' figure out the start day of week in locale

It was a mistake. We should not make it again. My suggestions:

1. Zero customization.
2. Add "earlier this week", "earlier last week" in label. Figure it out based on the locale -- the first day of the week.

Period.
(In reply to Philipp Kewisch [:Fallen] from comment #16)
> Coordinating user research would be a better use of time.
Sure, who wants to do a vote? Examples here:
https://mail.mozilla.org/pipermail/tb-planning/2016-April/004683.html
https://mail.mozilla.org/pipermail/tb-planning/2016-September/004873.html

If I count the contributions here, these people are in favour of a week grouping:
Jorg, Rimas, Luc, Magnus, Ricky (two of those can actually make decisions, also see bug 505981 comment #44).
Against: Alta88
Marcel wants a user-defined grouping although he said in bug 505981 comment #12 that he liked bug 505981 comment #6 (which is what is proposed here).

Looking at bug 505981 there are only people in favour of the weekly grouping (except Alta88), the patch proposed there only failed due to the "beginning of the week" problem.

To me it is pretty clear that this bug will be implemented if we can find someone to do it. Neal?
(In reply to Jorg K (GMT+2, PTO during summer) from comment #18)
> (In reply to Philipp Kewisch [:Fallen] from comment #16)
> > Coordinating user research would be a better use of time.
> Sure, who wants to do a vote? Examples here:
> https://mail.mozilla.org/pipermail/tb-planning/2016-April/004683.html
> https://mail.mozilla.org/pipermail/tb-planning/2016-September/004873.html
> 
> If I count the contributions here, these people are in favour of a week
> grouping:
> Jorg, Rimas, Luc, Magnus, Ricky (two of those can actually make decisions,
> also see bug 505981 comment #44).
> Against: Alta88
> Marcel wants a user-defined grouping although he said in bug 505981 comment
> #12 that he liked bug 505981 comment #6 (which is what is proposed here).
> 
> Looking at bug 505981 there are only people in favour of the weekly grouping
> (except Alta88), the patch proposed there only failed due to the "beginning
> of the week" problem.
> 
> To me it is pretty clear that this bug will be implemented if we can find
> someone to do it. Neal?

I've been waiting for consensus before starting the work. (plus I had actual work to do this weekend)

The votes seem to have been tallied, and motion made to start.

Motion seconded.

I'll begin work on this.
I have been waiting for so long. Thank you so much for the fix.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.