templatetags: add adjust_to_week_monday and iterate_days_until (#54806)
This commit is contained in:
parent
1e13d82e8e
commit
ffc4d8e611
|
@ -1190,3 +1190,24 @@ def test_convert_as_list():
|
|||
return range(5)
|
||||
|
||||
assert tmpl.render({'foo': list_range}) == '0'
|
||||
|
||||
|
||||
def test_adjust_to_week_monday(pub):
|
||||
t = Template('{{ value|adjust_to_week_monday }}')
|
||||
assert t.render({'value': '2021-06-13'}) == '2021-06-07'
|
||||
t = Template('{{ value|adjust_to_week_monday }}')
|
||||
assert t.render({'value': '2021-06-14'}) == '2021-06-14'
|
||||
t = Template('{{ value|adjust_to_week_monday }}')
|
||||
assert t.render({'value': datetime.datetime(2021, 6, 14, 0, 0)}) == '2021-06-14'
|
||||
|
||||
|
||||
def test_iterate_days_until(pub):
|
||||
t = Template(
|
||||
'{% for day in value|iterate_days_until:value2 %}{{ day }}{% if not forloop.last %}, {% endif %}{% endfor %}'
|
||||
)
|
||||
assert (
|
||||
t.render({'value': '2021-06-13', 'value2': '2021-06-16'})
|
||||
== '2021-06-13, 2021-06-14, 2021-06-15, 2021-06-16'
|
||||
)
|
||||
|
||||
assert t.render({'value': 'error1', 'value2': 'error2'}) == ''
|
||||
|
|
|
@ -437,6 +437,26 @@ def age_in_working_days_with_saturday(value, arg):
|
|||
return age_in_working_days(value, arg, saturday_is_a_working_day=True)
|
||||
|
||||
|
||||
@register.filter(expects_localtime=True)
|
||||
def adjust_to_week_monday(value):
|
||||
value = parse_date(unlazy(value))
|
||||
if not value:
|
||||
return ''
|
||||
return value - datetime.timedelta(days=value.weekday())
|
||||
|
||||
|
||||
@register.filter(expects_localtime=True)
|
||||
def iterate_days_until(value, until):
|
||||
value = parse_date(unlazy(value))
|
||||
until = parse_date(unlazy(until))
|
||||
if not (value and until):
|
||||
return
|
||||
while value < until:
|
||||
yield value
|
||||
value = value + datetime.timedelta(days=1)
|
||||
yield value
|
||||
|
||||
|
||||
@register.simple_tag
|
||||
def standard_text(text_id):
|
||||
return mark_safe(TextsDirectory.get_html_text(str(text_id)))
|
||||
|
|
Loading…
Reference in New Issue