From: Kevin Date: Thu, 14 May 2020 00:14:40 +0000 (-0400) Subject: Add support for tests in `{% for %}` X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=658dbaaf12a8489d0d22fbd30e2090ef7b13fb41;p=thirdparty%2Fjinja.git Add support for tests in `{% for %}` --- diff --git a/new_parser.py b/new_parser.py index d83c0a47..b8a6ccc3 100644 --- a/new_parser.py +++ b/new_parser.py @@ -193,7 +193,11 @@ def parse_block_for(ast): target = parse_variable(block_parameters[0]['value'], variable_context='store') iter = parse_variable(block_parameters[2]['value']) - if len(block_parameters) > 1: + if len(block_parameters) > 3: + if block_parameters[3]['value']['variable'] == 'if': + test = parse_conditional_expression(block_parameters[4]['value']) + + if len(block_parameters) > 3: recursive = block_parameters[-1]['value']['variable'] == 'recursive' else_ = _split_contents_at_block(ast['contents'], 'else') diff --git a/test_template.jinja b/test_template.jinja index 16bea774..a994464c 100644 --- a/test_template.jinja +++ b/test_template.jinja @@ -98,3 +98,6 @@ across lines #} {% else %} Kenny looks okay --- so far {% endif %} +{% for user in users if not user.hidden %} +
  • {{ user.username|e }}
  • +{% endfor %} \ No newline at end of file