mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-09-27 14:00:21 +00:00
24 lines
908 B
Python
24 lines
908 B
Python
""" additional formatting of dates """
|
|
from django import template
|
|
from django.template import defaultfilters
|
|
from django.contrib.humanize.templatetags.humanize import naturalday
|
|
|
|
from bookwyrm.utils.partial_date import PartialDate
|
|
|
|
register = template.Library()
|
|
|
|
|
|
@register.filter(expects_localtime=True)
|
|
def naturalday_partial(date, arg=None):
|
|
"""chooses appropriate precision if date is a PartialDate object
|
|
|
|
If arg is a Django-defined format such as "DATE_FORMAT", it will be adjusted
|
|
so that the precision of the PartialDate object is honored.
|
|
"""
|
|
if not isinstance(date, PartialDate) or date.has_day:
|
|
return naturalday(date, arg)
|
|
if not arg or arg == "DATE_FORMAT":
|
|
arg = "YEAR_MONTH_FORMAT" if date.has_month else "Y"
|
|
elif not date.has_month and arg in ("SHORT_DATE_FORMAT", "YEAR_MONTH_FORMAT"):
|
|
arg = "Y"
|
|
return defaultfilters.date(date, arg)
|