Index: date_based.py
===================================================================
--- date_based.py	(revisión: 9220)
+++ date_based.py	(copia de trabajo)
@@ -1,5 +1,6 @@
 import datetime
 import time
+import calendar
 
 from django.template import loader, RequestContext
 from django.core.exceptions import ObjectDoesNotExist
@@ -166,7 +167,7 @@
     return HttpResponse(t.render(c), mimetype=mimetype)
 
 def archive_week(request, year, week, queryset, date_field,
-        template_name=None, template_loader=loader,
+        template_name=None, template_loader=loader, firstweekday=6,
         extra_context=None, allow_empty=True, context_processors=None,
         template_object_name='object', mimetype=None, allow_future=False):
     """
@@ -180,17 +181,26 @@
             list of objects published in the given week
     """
     if extra_context is None: extra_context = {}
+    cal = calendar.Calendar(firstweekday)
+    weeks = []
+    last_week = []
+    the_week = []
+    for month in cal.yeardatescalendar(int(year), 12)[0]:
+        for a_week in month:
+            if a_week != last_week:
+                weeks.append(a_week)
+                last_week = a_week
     try:
-        date = datetime.date(*time.strptime(year+'-0-'+week, '%Y-%w-%U')[:3])
-    except ValueError:
+        the_week = weeks[int(week)]
+    except IndexError:
         raise Http404
 
     model = queryset.model
     now = datetime.datetime.now()
 
     # Calculate first and last day of week, for use in a date-range lookup.
-    first_day = date
-    last_day = date + datetime.timedelta(days=7)
+    first_day = the_week[0]
+    last_day = the_week[-1]
     lookup_kwargs = {
         '%s__gte' % date_field: first_day,
         '%s__lt' % date_field: last_day,
@@ -207,7 +217,7 @@
     t = template_loader.get_template(template_name)
     c = RequestContext(request, {
         '%s_list' % template_object_name: object_list,
-        'week': date,
+        'week': first_day,
     })
     for key, value in extra_context.items():
         if callable(value):
