Ticket #3542: 3542-month-based-archive_index-generic-view-r9973.diff

File 3542-month-based-archive_index-generic-view-r9973.diff, 1.7 KB (added by Ramiro Morales, 15 years ago)

Updated patch to trunk after the documentation refactoring

  • django/views/generic/date_based.py

    diff --git a/django/views/generic/date_based.py b/django/views/generic/date_based.py
    a b  
    1010def archive_index(request, queryset, date_field, num_latest=15,
    1111        template_name=None, template_loader=loader,
    1212        extra_context=None, allow_empty=True, context_processors=None,
    13         mimetype=None, allow_future=False, template_object_name='latest'):
     13        mimetype=None, allow_future=False, template_object_name='latest',
     14        date_list_period='year'):
    1415    """
    1516    Generic top-level archive of date-based objects.
    1617
     
    2526    model = queryset.model
    2627    if not allow_future:
    2728        queryset = queryset.filter(**{'%s__lte' % date_field: datetime.datetime.now()})
    28     date_list = queryset.dates(date_field, 'year')[::-1]
     29    if date_list_period == 'month':
     30        date_list = queryset.dates(date_field, 'month')[::-1]
     31    else:
     32        date_list = queryset.dates(date_field, 'year')[::-1]
    2933    if not date_list and not allow_empty:
    3034        raise Http404, "No %s available" % model._meta.verbose_name
    3135
  • docs/ref/generic-views.txt

    diff --git a/docs/ref/generic-views.txt b/docs/ref/generic-views.txt
    a b  
    232232    * ``template_object_name``: Designates the name of the template variable
    233233      to use in the template context. By default, this is ``'latest'``.
    234234
     235    .. versionadded:: 1.1
     236
     237    * ``date_list_period``: Specifies what date period is placed in
     238      ``date_list``. Acceptable values are ``'year'`` and ``'month'``. By
     239      default, this is ``'year'``.
     240
    235241**Template name:**
    236242
    237243If ``template_name`` isn't specified, this view will use the template
Back to Top