Задача: #1096
Статус: ✅ Исправлен
Дата: 20.06.2026
Git: dev commit 18226ae
На странице кейса https://site-dev.poreklame.tech/cases/stroydocuments/ весь контент после </footer> дублировался — каждая секция (Hero, О клиенте, Проблемы, Что изменилось, Решение, Почему это работает, CTA) отображалась дважды. Особенно заметно на мобильной версии.
Sastik-шаблон case-details.html содержит две копии тега <main>:
При замене Sastik-текста на wagtail-переменные {{ page.xxx }} в задаче #1087 дубликат сохранился. Обе копии рендерились с одними и теми же данными из CasePage.
В основной части (строки 1–419) был незакрытый тег:
{% if page.show_hero %} ← строка 196
Его парный {% endif %} находился внутри дубликата (строка 573). При попытке просто удалить дубликат Django выдавал:
Unclosed tag on line 196: 'if'. Looking for one of: elif, else, endif.
| Строки | Содержимое | Баланс тегов |
|---|---|---|
| 1–195 | Header (desktop + mobile) | 0 |
| 195–349 | <main> основной |
+1 (открыт show_hero) |
| 349–419 | </main> + footer + </body></html> |
+1 |
| 419–526 | <main> дубликат |
-1 (закрыт show_hero) |
| 526–631 | </main> + footer + </body></html> дубль |
0 |
Итог: 42 {% if %} / 41 {% endif %} в основной части → net +1.
Дубликат: 18 {% if %} / 19 {% endif %} → net -1.
</html> (строка 419) и второй </html> (строка 631) — 179 строк{% endif %} перед </html> — закрывает {% if page.show_hero %} из строки 196Итоговый баланс тегов: 0.
Баг устранён в корне — дубликат физически удалён из файла case_page.html. Новые страницы кейсов создаются через админку Wagtail и используют этот же шаблон — дублирования не будет.
Для страниц, не наследующих case_page.html (например разводящая /cases/), используется отдельный шаблон case_index_page.html, собранный из home_page.html и не содержащий дубликата.
При переносе Sastik-шаблона в Wagtail методом «Sastik-first» — всегда проверять структуру на дублирование <main>. Sastik-шаблоны могут содержать мобильные overlay-копии, которые нужно вырезать ДО замены на wagtail-теги, с последующей проверкой баланса Django-шаблонных тегов.