Короткая версия
Вот ссылка (TODO) на модуль. Смотрите его описание.
Многобукав
TODO: сделать прtвьюху, которая появится если вставить ссылку в телегу
В наше детективное агенство От интегратора из США поступила задача:
- Слетела разметка в Accounting -> Reports -> General Ledger.
- Версия 16.0
Для тех, кто не знает, это модуль
account_reports
из набора Odoo Enterprise Edition. Прислали ссылку на боевой экземпляр Odoo и доступ к нему.
Открыл экземпляр в режиме разработчика с ассетами. Визуально осмотрел этот отчет. Как-будто не применяются css-стили. Смотрю javascript-консоль - ошибок нет.
Сравнил, что выдает эталонный экземпляр из https://runbot.odoo.com, и убедился, что действительно в экземпляре клиента вообще не применяются стили из модуля account_reports
.
Т.е. если испектировать какой-либо элемент с того отчета, в колонке Styles из инструментов разработчика нету ни одного css-селектора, который определен в модуле account_reports
.
Смотрю сборку css-стилей со всех модулей (ссылка на одну из этих сборок имеет вид /web/assets/debug/web.assets_backend.css
), и вижу что содержимое css-стилей с того модуля на самом деле в эту сборку входят.
Набираю в консоле селектор, к которому должны были применяться стили, и убеждаюсь что они на месте.
В итоге браузер эти стили просто не видит. Мое лицо примерно вот:
Баг на стороне браузера? Мысль такая есть, на всерьез такой вариант не рассматриваю.
Подгружаю сборку стилей на отправил сюда: https://jigsaw.w3.org/css-validator
А там мне поздравляют, что ошибок не обнаружено. Ну спасибо млять за поздравления, у меня теперь никаких версий нет и что делать не знаю.
Подумал еще раз, глядя на эту сборку стилей, может быть там есть незакрытый комментарий?
Но потом пересмотрел еще раз и отбросил эту версию, т.к. все стили отделяются комментариями, где указываются с какого файла они импортировались. Пожалуй давай гляну, с каких модулей стили импортируются.
Среди куча знакомых названий модулей из Odoo CE и EE я заметил один незнакомый мне модуль с техническим названием ks_woocommerce
.
Ну отлично у нас есть подозреваемый. База боевая, поэтому удалять модуль нельзя, но можно стили этого модуля подправить. Сделал резервную копию стилей, обнулил оригинальные, пересоздал ассеты, смотрю разметку General Ledger и на этот раз можно по настоящему поздравить, разметка отчета восстановилась.
Ну а дальше начал смотреть, что со стилями этого модуля не так.
Итог
-
В репозиторий упомянутого css-валидатора отправил отчет об ошибке
-
Для избежания случайно забытой закрытой скобки в своих проектах, в CI/CD используйте инструменты их обнаружения. Если вы используете настройки pre-commit на основе шаблона https://github.com/OCA/oca-addons-repo-template, то такой инструмент есть и называется “prettier (with plugin-xml)”.