﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
31711	WeekArchiveView seens to be zero based for week, instead of one based.	RichardZimmerEschborn	nobody	"Django 2.2.6, Python 3.7.3, OS Debian 10.4


{{{
# urls.py
urlpatterns = [
    path('Event/', EventWeekArchiveView.as_view(), name='event_list'),
]
}}}


{{{
#models.py
class Event(models.Model):
    title = models.CharField(max_length=100),
    start = models.DateTimeField()

    def __str__(self):
        return '{} {}'.format(self.title, self.start.strftime('%a %d. %b %Y'))
}}}


{{{
# views.py
class EventWeekArchiveView(WeekArchiveView):
    template_name = 'event_archive_week.html'
    model = Event
    date_field = 'start'
    ordering = 'start'
    year = 2020
    week = 0
    week_format = ""%W""
    # week_format = ""%U""

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        print(context)
        return context
}}}

{{{
# event_archive_week.html
<h1>WEEK {{ week|date:""W"" }}</h1>
<h2> object_list</h2>
<ul>
   {% for event in object_list %}
      <li>{{ event }} </li>
   {% endfor %}
</ul>
<h2> event_list</h2>
<ul>
   {% for event in event_list %}
      <li>{{ event }} </li>
   {% endfor %}
</ul>
}}}

http://127.0.0.1:XXX/Event generates output for dates: Dec. 29. until Jan. 4. or Dec. 30. until Jan. 5. depending on week_format setting.

**Calling week = 0 should not generate any output, instead it should generate an error** (like it is done, when calling week = 54). The output generated should instead be for calling week = 1

The reverse works correct: The templatetag <h1>WEEK {{ week|date:""W"" }}</h1> translates to: WEEK 1.
But only, when the week_format setting is as shown in class definition. This is OK, since the templatetag does support IsoWeek only.

----

While debugging this I found that the resultset is twice in the context. Once under the name object_list and a second time under the name event_list. For large querysets this seems to be wasting recources.


{{{
#output of print(context)
{'paginator': None, 'page_obj': None, 'is_paginated': False, 'object_list': <QuerySet [<Event: Happening Wed 01. Jan 2020>]>, 'event_list': <QuerySet [<Event: Happening Wed 01. Jan 2020>]>, 'date_list': None, 'week': datetime.date(2019, 12, 29), 'next_week': datetime.date(2020, 6, 7), 'previous_week': None, 'view': <belegung.views.EventKwView object at 0x7fddaba967b8>}
}}}
"	New feature	closed	Generic views	dev	Normal	wontfix	ArchiveView, Week, bug		Unreviewed	0	0	0	0	0	0
