{% extends "base.html" %} {% load i18n static %} {# Nothing in this file should be reported. It shows the template patterns #} {# that ramplint understands instead of flagging them as false positives. #} {% block extra_head %} {# A viewport that allows zooming. #} {% endblock %} {% block content %}

{% block page_title %}{% endblock %}

{% trans "Details" %}

{# Rows rendered by Django - ramplint cannot see them, so it stays quiet. #} {{ form.as_table }}
{% include "orders/rows.html" %}
{# Layout table explicitly marked as such. #}
{{ left }}{{ right }}
{% csrf_token %} {# Label and input ids come from the form field. #} {# Attributes rendered by the widget itself. #} {# Valid autofill tokens, including sections and dynamic values. #} {# Wrapped label, hidden and submit inputs. #}
{# The same id in {% if %} / {% else %} branches - only one is ever rendered. #} {% if user.is_authenticated %}

{% trans "Welcome back" %}

{% else %}

{% trans "Hello, guest" %}

{% endif %} {# Text, translations and includes all count as accessible names. #} {% include "icons/help.html" %} {{ product.name }} {# Real links: fragment, named anchor, URL from a variable. #} {% trans "Jump to reviews" %} {% trans "Continue" %} {# tabindex 0 and -1 keep the natural focus order; dynamic values are skipped. #}
{% trans "Menu" %}
{{ dialog_content }}
{% trans "Cart" %} {# Frames: title from a variable, and a hidden tracking frame. #} {# Decorative image with an intentionally empty alt. #} {# A known exception, silenced inline. #} {# ramplint: ignore img-alt #} {% endblock %}