gpt4 book ai didi

javascript - odoo 10 扫描条形码并开始操作

转载 作者:行者123 更新时间:2023-11-29 23:26:58 25 4
gpt4 key购买 nike

使用 odoo 10 在我的模块中,我通过使用条形码创建维修订单来管理我的车间,所以我想做的是通过阅读条形码单击按钮 start_btn使用条形码扫描器的值,这样我就可以在扫描我的维修订单后启动计时器,在我的方法 on_barcode_scanned 上我调用了 toggle_start 按钮状态确实改变了,但计时器没有开始

有人告诉我必须使用 javascript 才能神奇地单击按钮,但我不知道该怎么做,等待您的帮助。

提前致谢,祝好。

class project_task(models.Model):
_name = 'project.task'
_inherit = ['project.task', 'barcodes.barcode_events_mixin']

# _barcode_scanned is in the formview
_barcode_scanned = fields.Char("Barcode Scanned", help="Value of the last barcode scanned.", store=False)

def on_barcode_scanned(self, barcode):
self.toggle_start()

在我看来:

            <div name="button_box" position="inside">
<field name='test_barcode' options="{'barcode_events': 'True'}" widget="field_float_scannable"/>
<button name="toggle_start" id="start_btn" type="object"
class="oe_stat_button" icon="fa-clock-o">
<field name="task_timer" widget="boolean_button"
options='{"terminology": {
"string_true": "Started",
"hover_true": "Pause",
"string_false": "Timer",
"hover_false": "Start"
}}'/>
</button>
</div>

最佳答案

在对 arodoo_stock_barcode 模块和 project_task_timer 您尝试使用的模块进行深入研究后,我发现了什么:

  • 你必须在你的模型中添加_barcode_scanned字段

    class project_task(models.Model):
    _name = 'project.task'
    _inherit = ['project.task', 'barcodes.barcode_events_mixin']

    # _barcode_scanned is in the formview
    _barcode_scanned = fields.Char("Barcode Scanned", help="Value of the last barcode scanned.", store=False)
    test_barcode = fields.Char("barcode")
  • 不要使用on_barcode_scanned方法:只使用javascript文件,那么如何做:

    odoo.define('project_task_timer.MyScript', function (require) {
    "use strict";
    var core = require('web.core');
    var Model = require('web.Model');
    var flag = false;
    var FormViewBarcodeHandler = require('barcodes.FormViewBarcodeHandler');
    var _t = core._t;
    var MyScript = FormViewBarcodeHandler.extend({

    init: function (parent, context) {
    if (parent.ViewManager.action) {
    this.form_view_initial_mode = parent.ViewManager.action.context.form_view_initial_mode;
    } else if (parent.ViewManager.view_form) {
    this.form_view_initial_mode = parent.ViewManager.view_form.options.initial_mode;
    }
    },
    start: function () {
    });
    },
    pre_onchange_hook: function (barcode) {

    var barcode_filed = this.form_view.datarecord.test_barcode;
    var deferred = $.Deferred();
    if (barcode_filed === barcode) {
    // to change the stage from new to being serviced
    $(".o_form_view ul.oe_form_status_clickable li:nth-child(2)").click();
    $(".oe_button_box button:nth-child(3)").click();

    return deferred.reject();
    }
    },

    open_wizard: function (action) {
    var self = this;
    this.form_view.trigger('detached');
    this.do_action(action, {
    on_close: function () {
    self.form_view.trigger('attached');
    self.form_view.reload();
    }
    });
    }
    });
    core.form_widget_registry.add('myscript', MyScript);
    return MyScript;
    });

ps: 如果你想添加on_barcode_scanned 方法到你继承的模型你可以做到,但是你不能使用python点击按钮。

祝你好运。

关于javascript - odoo 10 扫描条形码并开始操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48791801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com