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

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

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. Web端增加 addons的方法分享

Web端增加 addons的方法分享

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

    本人最近通过 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
    • mrshellyM 离线
      mrshellyM 离线
      mrshelly
      写于 最后由 编辑
      #2

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

      1 条回复 最后回复
      0
      • C 离线
        C 离线
        chengwenge
        写于 最后由 编辑
        #3

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

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

        1 条回复 最后回复
        0
        • mrshellyM 离线
          mrshellyM 离线
          mrshelly
          写于 最后由 编辑
          #4

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

          1 条回复 最后回复
          0
          • C 离线
            C 离线
            chengwenge
            写于 最后由 编辑
            #5

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

            1 条回复 最后回复
            0

            • 登录

            • 没有帐号? 注册

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