Проверьте, нажал ли пользователь флажок - PullRequest
0 голосов
/ 13 января 2020

На QWEB Invoice Portal Я хочу проверить, если пользователь установил флажок, если установлен флажок, показать кнопки, скрывающие их.

Я создаю поле на Invoice модели: x_custom_checkbox: bool

Default state: False

При состоянии x_custom_checkbox = False

enter image description here

При состоянии x_custom_checkbox = True

enter image description here

На просмотре Invoice Portal Template Использую <input type="checkbox" id="invoice.x_custom_checkbox"/> чтобы вызвать поле, кто может динамически отображать / скрывать 2 кнопки (на изображении выше) в соответствии с состоянием флажка?

Ответы [ 2 ]

0 голосов
/ 27 января 2020

Мое решение действительно очень простое после некоторых испытаний на Invoice Portal xml

 <center><input id="checkbox-status" type="checkbox" name="invoice.x_custom_checkbox"/> Accept</center>

 <div id="ShowHideDiv" class="o_download_pdf btn-toolbar flex-sm-nowrap">

    <script type="text/javascript">
            $("#ShowHideDiv").hide();
            $("#checkbox-status").change(function() {
                if ( $(this).is(':checked') ) {
                    $("#ShowHideDiv").show();
                } else {
                    $("#ShowHideDiv").hide();
                }
            });
0 голосов
/ 14 января 2020

вы можете сделать это на js.

odoo.define('your_module_name.account_portal_sidebar', function (require) {
'use strict';

    var AccountPortalSidebar = require('account.AccountPortalSidebar');

    AccountPortalSidebar.include({

            events: _.extend({
                'change input#x_custom_checkbox': '_onXCustomCheckboxChange',
            }, AccountPortalSidebar.prototype.events),

    _onXCustomCheckboxChange: function () {
                var self = this;
                var x_custom_checkbox_checked = this.$('input#x_custom_checkbox').prop('checked');
                if (x_custom_checkbox_checked){
                    $('.o_download_btn').show();
                    $('.o_portal_invoice_print').show();
                } else {
                    $('.o_download_btn').hide();
                    $('.o_portal_invoice_print').hide();
                }
           }, // end of _onXCustomCheckboxChange
});
...