Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    关于 audit trail 的应用问题

    Odoo 开发与实施交流
    3
    4
    3986
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • G
      geohuz 最后由 编辑

      最近用了一下audit trail, 发现一个很不爽的缺陷, 就是这个模块实际不可以log在one2many关系中many那一边的变化. 一般的one2many情形比如订单和订单行, 我们一定是把订单行放入订单维护界面, 再通过one2many_list widget来构造成一体化的维护界面, 在这种情况下, 你无论怎样修改订单行, audit trail都不能log订单行表的具体变化, 只有一条在one表(就是订单表)的关系字段上的毫无意义的log. 本人跟踪了一下这个audit trail, 发现他实际就是netsvc['object']的子类, 然后overwrite那个execute方法来实现对object变化记录的功能. 但是其实这个execute方法在上述关系维护过程中, 子表变化不能得到触发, 除非你单独用界面维护这个子表, 然而这没有什么实用性. 不知哪位高人有什么简单的办法? 我在oe的论坛中见有人搞个中间类(继承至osv), 然后你要跟踪的类再从他继承, 觉得还是不爽, 因为现在的audit trail已经很完善了, 就差这个one2many的问题. 有没有更好的办法?

      1 条回复 最后回复 回复 引用 0
      • mrshelly
        mrshelly 最后由 编辑

        "不可以log在one2many关系中many那一边的变化"

        这句咋理解啊?

        什么叫" log在 xxx 的变化"

        你指 记录LOG??

        1 条回复 最后回复 回复 引用 0
        • digitalsatori
          digitalsatori 管理员 最后由 编辑

          试了一下,的确有你提到的问题,对于o2m字段,对于many端的修改并没有被audittrial记录

          简单粗暴的修改了一下,现在能记录了,只是很难看 (修改了audittrail.py两行214行开始,#注释掉的是原来的代码,其下一行是修改的代码:

                                 

          #val = pool.get(model).read(cr, uid, [id], [pool.get(model)._rec_name])<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; val = pool.get(model).read(cr, uid, [id])<br /><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if val:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #value.append(val[0][pool.get(model)._rec_name])<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value.append(val[0])<br />
          

          【上海先安科技】(tony AT openerp.cn)

          1 条回复 最后回复 回复 引用 0
          • First post
            Last post