..
Show Message (html) In Form View According To Condition
문제
form 뷰에 안내 메시지를 HTML로 추가했다.
<xpath expr="//field[@name='purchase_origin_id']" position="after">
<div class="alert alert-danger" role="alert" colspan="2">
수입 검사는 해당 품목에 수입검사 관리점 등록과 요청, 수량 모두 입고되어야 합니다.
</div>
</xpath>
여기서 문제는 조건에 따라 안내 메세지를 보여주고/숨기고 해야 하는데, field
태그가 아니라, 무슨 방법을 사용해야 할 지 감도 안 잡혔다…😔
Qweb에서 사용하는 t-if
, t-attf
문법을 사용해봤지만, 아쉽게도 숨겨지지 않았다.
해결
field
태그에서 사용하는 것처럼 attrs
속성을 사용해 조건을 주면 된다.
<xpath expr="//field[@name='purchase_origin_id']" position="after">
<div class="alert alert-danger" role="alert" colspan="2"
attrs="{'invisible': [('purchase_origin_id', '==', False)]}">
수입 검사는 해당 품목에 수입검사 관리점 등록과 요청, 수량 모두 입고되어야 합니다.
</div>
</xpath>
당연히 field
태그에서 사용하는 odoo 속성을 사용할 수 없다고 생각해, odoo 속성은 배제하고 테스트를 해봤는데… 앞으로 섣부른 판단은 금지 ❌