Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #14752 -- Corrected date parsing in WeekArchiveView when using …

…%W as a week format. Thanks to msundstr for the report and patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14684 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 2efb4757af8c6d6a757779e68671c1455dde95b6 1 parent 3498849
@freakboy3742 freakboy3742 authored
View
9 django/views/generic/dates.py
@@ -348,9 +348,14 @@ def get_dated_items(self):
week = self.get_week()
date_field = self.get_date_field()
+ week_format = self.get_week_format()
+ week_start = {
+ '%W': '1',
+ '%U': '0',
+ }[week_format]
date = _date_from_string(year, self.get_year_format(),
- '0', '%w',
- week, self.get_week_format())
+ week_start, '%w',
+ week, week_format)
# Construct a date-range lookup.
first_day = date
View
11 tests/regressiontests/generic_views/dates.py
@@ -232,6 +232,16 @@ def test_week_view_invalid_pattern(self):
res = self.client.get('/dates/books/2007/week/no_week/')
self.assertEqual(res.status_code, 404)
+ def test_week_start_Monday(self):
+ # Regression for #14752
+ res = self.client.get('/dates/books/2008/week/39/')
+ self.assertEqual(res.status_code, 200)
+ self.assertEqual(res.context['week'], datetime.date(2008, 9, 28))
+
+ res = self.client.get('/dates/books/2008/week/39/monday/')
+ self.assertEqual(res.status_code, 200)
+ self.assertEqual(res.context['week'], datetime.date(2008, 9, 29))
+
class DayArchiveViewTests(TestCase):
fixtures = ['generic-views-test-data.json']
urls = 'regressiontests.generic_views.urls'
@@ -349,4 +359,3 @@ def test_date_detail_allow_future(self):
def test_invalid_url(self):
self.assertRaises(AttributeError, self.client.get, "/dates/books/2008/oct/01/nopk/")
-
View
2  tests/regressiontests/generic_views/tests.py
@@ -2,4 +2,4 @@
from regressiontests.generic_views.dates import ArchiveIndexViewTests, YearArchiveViewTests, MonthArchiveViewTests, WeekArchiveViewTests, DayArchiveViewTests, DateDetailViewTests
from regressiontests.generic_views.detail import DetailViewTest
from regressiontests.generic_views.edit import CreateViewTests, UpdateViewTests, DeleteViewTests
-from regressiontests.generic_views.list import ListViewTests
+from regressiontests.generic_views.list import ListViewTests
View
2  tests/regressiontests/generic_views/urls.py
@@ -149,6 +149,8 @@
views.BookWeekArchive.as_view(allow_future=True)),
(r'^dates/books/(?P<year>\d{4})/week/no_week/$',
views.BookWeekArchive.as_view()),
+ (r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/monday/$',
+ views.BookWeekArchive.as_view(week_format='%W')),
# DayArchiveView
(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/$',

0 comments on commit 2efb475

Please sign in to comment.
Something went wrong with that request. Please try again.