跳转至内容

Odoo 开发与实施交流

No decsciption available
2.3k 主题 10.5k 帖子
  • tree 加widget=‘kanban_state_selection’

    2
    0 赞同
    2 帖子
    645 浏览
    H

    @hui
    1、这个widget在odoo10的时候还是只是在project模块中自定义的一个widget,而且只是在form,kanban视图中有效果,list视图没有效果的。
    2、这个widget不能通用的,odoo11好像可以通用了。

    我抄写官方的代码,在我需要的模块自定义了一个status_selection的widget,测试效果可以。主要的js代码如下:

    代码中50-59行代码,就是根据自定义的selection的key进行颜色的定义。

    这个不是很懂,也不知道哪些是多余的,还有就是这个template用原来的好像不行,复制了一份的。:face_with_stuck-out_tongue_winking_eye:

    odoo.define('sps_project.include_form_widget', function (require) { 'use strict'; var ajax = require('web.ajax'); var core = require('web.core'); var crash_manager = require('web.crash_manager'); var data = require('web.data'); var datepicker = require('web.datepicker'); var dom_utils = require('web.dom_utils'); var Priority = require('web.Priority'); var ProgressBar = require('web.ProgressBar'); var Dialog = require('web.Dialog'); var common = require('web.form_common'); var formats = require('web.formats'); var framework = require('web.framework'); var Model = require('web.DataModel'); var pyeval = require('web.pyeval'); var session = require('web.session'); var utils = require('web.utils'); var _t = core._t; var QWeb = core.qweb; var StatusSelection = common.AbstractField.extend({ template: "FormSelection", events: { 'click a': function(e) { e.preventDefault(); }, 'mouseup a': function(e) { e.stopPropagation(); }, 'click li': 'set_kanban_selection' }, start: function () { // hook on form view content changed: recompute the states, because it may be related to the current stage this.view.on('view_content_has_changed', this, function () { this.render_value(); }); return this._super(); }, prepare_dropdown_selection: function() { var self = this; var _data = []; _.map(self.field.selection || [], function(selection_item) { var value = { 'name': selection_item[0], 'tooltip': selection_item[1], }; if (selection_item[0] === 'initial') { value.state_class = 'oe_kanban_status_grey'; value.state_name = selection_item[1]; } else if (selection_item[0] === '1st review') { value.state_class = 'oe_kanban_status_green'; value.state_name = selection_item[1]; } else { value.state_class = 'oe_kanban_status_red'; value.state_name = selection_item[1]; } _data.push(value); }); return _data; }, render_value: function() { this._super(); this.states = this.prepare_dropdown_selection(); var self = this; // Adapt "FormSelection" var current_state = _.find(this.states, function(state) { return state.name === self.get('value'); }); this.$('.oe_kanban_status') .removeClass('oe_kanban_status_red oe_kanban_status_green') .addClass(current_state.state_class); // Render "FormSelection.Items" and move it into "FormSelection" var $items = $(QWeb.render('FormSelection.items', { states: _.without(this.states, current_state) })); var $dropdown = this.$el.find('.dropdown-menu'); $dropdown.children().remove(); // remove old items $items.appendTo($dropdown); }, /* setting the value: in view mode, perform an asynchronous call and reload the form view; in edit mode, use set_value to save the new value that will be written when saving the record. */ set_kanban_selection: function (ev) { var self = this; ev.preventDefault(); var li = $(ev.target).closest('li'); if (li.length) { var value = String(li.data('value')); if (this.view.get('actual_mode') === 'view') { var write_values = {}; write_values[self.name] = value; return this.view.dataset._model.call( 'write', [ [this.view.datarecord.id], write_values, self.view.dataset.get_context() ]).done(self.reload_record.bind(self)); } else { return this.set_value(value); } } }, reload_record: function() { this.view.reload(); }, }); core.form_widget_registry.add('status_selection', StatusSelection); return { StatusSelection: StatusSelection, }; });
  • 将odoo设置中的debug选项设置在菜单栏上

    7
    0 赞同
    7 帖子
    2k 浏览

    @judy_zh 嗯嗯,别客气,大家多交流多交流。

  • 使用widget去掉订单日期中的时间部分

    6
    0 赞同
    6 帖子
    3k 浏览
    J

    请问 是在哪里添加这行代码的?谢谢。

  • 如何删除状态为“完成”的调拨业务

    1
    0 赞同
    1 帖子
    531 浏览
    尚无回复
  • 时间控件的修改

    3
    0 赞同
    3 帖子
    813 浏览

    我没有找到相关的部分,只在源码的js文件中有看到,它是bootstrap的datetimepicker。只在10.0版本中看到有相关的,按照它的写法,我没有办法达到要求。

  • input传值给某字段

    1
    0 赞同
    1 帖子
    436 浏览
    尚无回复
  • 如何在form视图中的明细表中实现树形的层级结构

    1
    0 赞同
    1 帖子
    503 浏览
    尚无回复
  • 0 赞同
    1 帖子
    532 浏览
    尚无回复
  • 1 赞同
    2 帖子
    1k 浏览
    digitalsatoriD

    非常感谢@226408 的操作说明,你的图解说明清晰明了,赞👍一个。

    波次理货作业(picking wave)的典型应用场景是,公司有固定频率的集中收发货周期。比如:生鲜食品快递业务为了保证食品新鲜度,在每天下午不同的时间段分三次集中发货作业。我们就可以把订单的发货按优先级顺序归集分配到三个不同的Picking Wave中批量操作发货。

  • 欢迎各路大神

    2
    0 赞同
    2 帖子
    870 浏览
    G

    看环境是否正常 并不是安装就ok

  • 0 赞同
    1 帖子
    546 浏览
    尚无回复
  • 0 赞同
    1 帖子
    557 浏览
    尚无回复
  • 1 赞同
    1 帖子
    682 浏览
    尚无回复
  • Odoo的层级数据的新算法:Materialized Path

    1
    0 赞同
    1 帖子
    544 浏览
    尚无回复
  • [已解决]current transaction is aborted, commands ignored until end of transaction block

    2
    0 赞同
    2 帖子
    1k 浏览
    H

    @hui
    日志还是很重要的。有些本地测试跟服务器测试还是有差异的。
    我们这个错误是超时导致的,修改下面两个参数后就可以了。

    limit_time_cpu = 600 limit_time_real = 600
  • [已解决]属性relation,column1,column2

    12
    0 赞同
    12 帖子
    1k 浏览
    H

    @digitalsatori
    没意义。

    这个中间表不存在的,那relation引用一个没有的,column1,column2的值也是没有的,这个也不报错的啊?

  • xmlrpc 一次查询出active=False的某product

    1
    0 赞同
    1 帖子
    475 浏览
    尚无回复
  • [已解决]TypeError: __init__() takes exactly 2 arguments (3 given)

    5
    0 赞同
    5 帖子
    1k 浏览
    S

    @hui

    'xxx', (y,z): 这是两个变量,当中的,号是变量分隔符

    'xxx'%(y,z) 这个才是字符串格式化

  • 已装好Odoo12实施和开发环境的深度Linux虚拟机可以自由下载了。

    1
    -1 赞同
    1 帖子
    2k 浏览
    digitalsatoriD

    拜托,请不要在这里反复推广你的群。谢谢了!Odoo 12官方还没有呢,原来是在你群里。

  • [已解决]返回action跳转到对应的form视图

    9
    0 赞同
    9 帖子
    2k 浏览
    H

    @hui @digitalsatori
    知道了,这样写的,谢谢。

    'views': [[self.env.ref('sps_product.product_template_form_view').id, 'form']],