Odoo 中文社区

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

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

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

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

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

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

    Web端增加 addons的方法分享

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

      本人最近通过 web实现打印功能,先整理我的处理办法,供需要的人参考。

      一.抓包分析 report调用的数据:

      _terp_selection:[68]
      _terp_action:400
      terp_id:68
      terp_model:sale.order
      datas:{'groups_id': [], 'multi': False, 'report_xsl': False, 'name': u'\u62a5\u4ef7\u5355/\u8ba2\u5355',
      'string': u'\u62a5\u4ef7\u5355/\u8ba2\u5355', 'auto': False, 'report_name': u'sale.order',
      'header': True, 'attachment_use': False, 'report_type': u'html',
      'usage': False, 'model': u'sale.order', 'type': u'ir.actions.report.xml',
      'id': 400, 'report_xml': False, 'attachment': False}




      二.处理方法:

      1.拦截actions,修改 openerp/controllers/actions,如果报表是 type='ir.actions.report.xml' and report_type='html' 调转到 xxx controllers 
      2.新增加 xxx web addons
        1) openerp/controllers/增加具体的controller代码 ,增加文件 xxx.py,下控制代码,代码通过xmlrpc访问 server,返回数据在xxx.mako中使用
        2) 在openerp/controllers/templates 增加 xxx 对应的 templates ,xxx.mako文件
        3) openerp/controllers/root  增加      xxx = controllers.xxx.Xxx()
        4) openerp/controllers 下的__init
      .py 增加 对 xxx 的 import

      3.如果需要,在 server addons下增加 可以供 xmlrpc调用的代码,比如产生报表数据。


      三.中文处理注意事项:
      1).controller 的py 用utf-8编码
      文件第一行
      # -- encoding: utf-8 --

      2).mako用utf-8编码
      文件第一行
      ## -- coding: utf-8 --

      四.方法作用
        调用或跳转到自己controllers如果用其它通用的办法,比如菜单,那么这样的模式可以增加自己想增加的任何 web 端的功能,数据源还是访问 oe server.

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

        原有报表的 xmlrpc 数据接口在哪里? 好象报表 report 返回数据都是 pdf 的 base64 string 一样的...

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

          原有报表的 xmlrpc 数据接口没有用,我现在直接用新的接口返回报表(mako文件)需要的数据,

          其实现在只是用到了原来报表的名称定义,以便模块的 报表部分有链接,让后我把连接调跳转到我需要处理的 controllers上

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

            嗯. 了解了.谢谢分享. 然后, 有个问题.
            可不可以以继承的方式(不修改原有actions controller) 去接管 report 的 web client 动作呢? 

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

              继承report我开始就是这么想,但是比较复杂,就没有用这个办法,report有很多处理rml的方法和替换render

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