Opened 12 years ago

Last modified 11 years ago

#17508 assigned New feature

DateDetailView should accept less specific dates, ie Year/Month or just Year

Reported by: AndrewIngram Owned by: Moon Limb
Component: Generic views Version: dev
Severity: Normal Keywords:
Cc: andy@…, hirokiky@…, moonlimb@… Triage Stage: Accepted
Has patch: yes Needs documentation: yes
Needs tests: yes Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

DateDetailView currently expects segments for year, month and day in the URL. This introduces the requirement to have an archive page for each level of the date; ie a year archive, a month archive, and a day archive:

/2012/
/2012/jan/
/2012/jan/06/
/2012/jan/06/blog-entry-name/

I don't think I'm inaccurate in saying that most bloggers (as opposed to news sites) don't usually create more than one post a day, and many (myself included) have a frequency of much less than once per month. This means we're introducing views such as day archive that have exactly the same information as the higher levels. As a URL purist, I don't like unnecessary segments in my schema and unnecessary pages in my information architecture.

In my case my URL structure is as follows, I don't use DayArchive at all:

/2012/
/2012/jan/
/2012/jan/blog-entry-name/

I've achieved this by creating my own version of DateDetailView that removes the use of DayMixin, but I think this can also be achieved by modifying DateDetailView itself to allow looser date matching using configuration of the view itself.

Is this a common enough use case to be worth making the change in Django itself? I think it can be done without affecting backwards compatibility.

Attachments (1)

t17508_1.diff (2.5 KB ) - added by Hiroki Kiyohara 11 years ago.
Patch to accept less specific dates for DateDetailView.

Download all attachments as: .zip

Change History (7)

comment:1 by Jannis Leidel, 12 years ago

Triage Stage: UnreviewedAccepted

comment:2 by Aymeric Augustin, 12 years ago

Owner: changed from nobody to Aymeric Augustin

comment:3 by Aymeric Augustin, 12 years ago

Owner: changed from Aymeric Augustin to nobody

by Hiroki Kiyohara, 11 years ago

Attachment: t17508_1.diff added

Patch to accept less specific dates for DateDetailView.

comment:4 by Hiroki Kiyohara, 11 years ago

Cc: hirokiky@… added
Has patch: set
Needs documentation: set
Needs tests: set
Version: 1.3master

I added a patch.

Now, DateDetail takes a attribute to set the unity of dates named date_separate_unit.
The attribute allows a vaule, which daily, monthly or yearly:

  • daily: /2012/jan/06/blog-entry-name/
  • monthly: /2012/jan/blog-entry-name/
  • yearly: /2012/blog-entry-name/

How do you feel about this behavior and implementation?
I think it is better to hear someone's opinion.

comment:5 by Moon Limb, 11 years ago

Owner: changed from nobody to anonymous
Status: newassigned

comment:6 by Moon Limb, 11 years ago

Cc: moonlimb@… added
Owner: changed from anonymous to Moon Limb
Note: See TracTickets for help on using tickets.
Back to Top