跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. 关于 audit trail 的应用问题

关于 audit trail 的应用问题

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
4 帖子 3 发布者 5.0k 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • G 离线
    G 离线
    geohuz
    发表于 最后由 编辑
    #1

    最近用了一下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
    • M 离线
      M 离线
      mrshelly
      发表于 最后由 编辑
      #2

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

      这句咋理解啊?

      什么叫" log在 xxx 的变化"

      你指 记录LOG??

      1 条回复 最后回复
      0
      • D 离线
        D 离线
        digitalsatori
        管理员
        发表于 最后由 编辑
        #3

        试了一下,的确有你提到的问题,对于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

        你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

        厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

        有了你的建议,这篇帖子会更精彩哦 💗

        注册 登录
        回复
        • 在新帖中回复
        登录后回复
        • 从旧到新
        • 从新到旧
        • 最多赞同


        • 登录

        • 没有帐号? 注册

        • 登录或注册以进行搜索。
        • 第一个帖子
          最后一个帖子
        0
        • 版块
        • 标签
        • 热门
        • 用户
        • 群组