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

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

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

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

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

Mrshelly 在线培训 模块开发



  • 总监 在QQ 群 在线演示 写模块 ,太快了,绝对快枪手。
    从 问题提出,归纳,形成模块思路,在线编写,中间还附带了 答疑,然后  根据 用户需求 补充模块,历时 1小时

    一时消化不掉 记录先,
    回头慢慢 咀嚼消化。

    完整记录 请看 小秘书 的记录,根据时间范围 自行检索吧<br / [检测到链接无效,已移除] br />
    ====================


    重庆-mrshelly(49812643)  19:51:50
    有语言基础, 要掌握python 也就两三个小时.
    在OE中使用python 要掌握的语法 真不会超过 30分钟的东西.
    广州-可乐(13715416)  19:53:17
    python用什么工具开发
    重庆-mrshelly(49812643)  19:53:22
    基本的表达式,, 流程控制,  dict  list 
    广州-可乐(13715416)  19:53:45
    怎样debug
    重庆-mrshelly(49812643)  19:53:54<br / [检测到链接无效,已移除] br />不需要太高级的 debug 方法.
    @广州-可乐 用普通的文本编辑器即可.
    print  即可调试.
    广州-可乐(13715416)  19:54:24
    。。。。。。。。。。。
    重庆-mrshelly(49812643)  19:54:26
    高级点儿, 可以 logger
    合肥-杨振宇<[email protected]>  19:54:37
    在脑子里。
    广州-可乐(13715416)  19:54:40
    有最高级吗?
    重庆-mrshelly(49812643)  19:54:54
    再高级点儿, 可以弄远程调试, 可以使用IDE 设置断点.



  • 北京-小义(345944084)  20:03:15
    有语言基础, 要掌握python 也就两三个小时.
    在OE中使用python 要掌握的语法 真不会超过 30分钟的东西.??

    重庆-mrshelly(49812643)  20:03:39
    是的.
    OE 模块开发中, 使用到的OE 的东西很少.
    赋值,流程控制, dict  list 差不多就够用了.
    重庆-老刘(237401117)  20:05:19
    太有信心了
    重庆-mrshelly(49812643)  20:06:06
    官方有专用于学习的模块.那就是 idea 模块.
    重庆-老刘(237401117)  20:05:36
    看他的代码昏的一个字
    专用于学习的模块?
    重庆-老刘(237401117)  20:06:39
    还有这种模块?

    重庆-mrshelly(49812643)  20:07:08

    在 4.x 5.x 的时候. 官方就推荐初学者去学习 idea 模块.
    这个模块相对其他模块是独立的.
    读懂了这个模块. 那就基本上把模块开发的大致思路理解了.



  • 重庆-mrshelly(49812643)  20:09:03
    OK, 咱们来写一个OE的智能问答系统模块吧.....
    广东-AllanWong(18895563)  20:09:29
    AI..
    北京-小义(345944084)  20:09:38

    重庆-mrshelly(49812643)  20:09:51
    @广东-AllanWong  你前面少输入了一个"做"字.
    唉..... OE 就没有一个好点儿的问答系统.
    系统推荐的回答真的 惨不忍睹.....
    重庆-mrshelly(49812643)  20:10:53
    首先, 要有一个问题对象.
    然后 要有一个答案对象.
    然后 通过后台的 cron 定时任务, 在后台跳一个分析脚本.
    重庆-mrshelly(49812643)  20:11:57
    将最佳的前五个答案 记录到问题下面.
    将目前系统中所有的答案与问题做一个匹配度计算....



  • 重庆-mrshelly(49812643)  20:12:59
    模块名字 就叫 openerp_qa吧.
    然后 模块有几个专用文件

    init.py
    openerp.py

    先简单做好这两个文件.
    从 idea 文件夹复制即可.
    重庆-mrshelly(49812643)  20:14:59
    init.py 中引用一个 py 文件.
    openerp.py 中去定义一个简单的 view xml 文件.
    引用的 python 文件 就取个名字 叫 res_object.py 吧.



  • 重庆-mrshelly(49812643)  20:16:58
    init.py 文件, 只有这样两行.
    只要你的__init__.py openerp.py 文件没有引用到的文件, 基本上都不是你模块不用的.
    不是你模块要用的.
    [attachimg=1]



  • 1 模块名字.
    2 作者
    3 作者的网站.
    4 模块要用到的图片.
    5 咱们要引用的 xml

    [attachimg=1]




    定义好对象

    [attachimg=2]


    [attachimg=3]


    在 xml 中. 第5行,
    然后定义 xml
    为模块定义了一个最顶级的菜单.
    然后 52行
    在该顶级菜单下, 添加了一个 Question 菜单.
    重庆-mrshelly(49812643)  20:27:12
    然后 8-23 行定义了 question 的 form view
    24-33 定义了 tree view
    34-43 定义了 search view
    个人是推荐将每个对象的 这三种基本 view xml 都定义完整.


    在 xml 中. 第5行,
    然后定义 xml
    为模块定义了一个最顶级的菜单.
    然后 52行
    在该顶级菜单下, 添加了一个 Question 菜单.
    重庆-mrshelly(49812643)  20:27:12
    然后 8-23 行定义了 question 的 form view
    24-33 定义了 tree view
    34-43 定义了 search view
    个人是推荐将每个对象的 这三种基本 view xml 都定义完整.


    在 xml 中. 第5行,
    然后定义 xml
    为模块定义了一个最顶级的菜单.
    然后 52行
    在该顶级菜单下, 添加了一个 Question 菜单.

    重庆-mrshelly(49812643)  20:27:12
    然后 8-23 行定义了 question 的 form view
    24-33 定义了 tree view
    34-43 定义了 search view
    个人是推荐将每个对象的 这三种基本 view xml 都定义完整.



  • 整个系统 的菜单规划是

    OpenERP Q&A Management --> Question --> Question
    重庆-mrshelly(49812643)  20:29:25
    点最下级的 Question 后, 则会打开系统的 Question 的列表.
    只需要这样的结果.
    这个模块就可以使用了.


    东莞-lky(176372509)  20:30:05

    重庆-mrshelly(49812643)  20:30:14
    咱们来安装一下.
    我日, 才20分钟不到.




  • 创建一个 temp7 的数据库.
    还是去找个模块图标吧.



  • 要做个png
    [attachimg=1]

    下载下来是 jpg

    安装一下

    [attachimg=2]




  • [attachimg=1]

    [attachimg=2]

    [attachimg=3]

    [attachimg=4]

    现在就可以创建一个问题了.
    [attachimg=5]



  • 问题对象已OK了.
    还要放在答案...


    [attachimg=1]



  • [attachimg=1]


    把 res.question 复制一份.
    去更新模块.


    [attachimg=2]

    [attachimg=3]





  • [attachimg=2]

    [attachimg=1]






    多一个菜单出来了.



  • [attachimg=1]

    desc
    添加上  answer 多出来的一个字段

    [attachimg=2]

    [attachimg=3]



  • 开发中还没忘记答疑
    ============================

    [attachimg=1]这个怎么出来?



    [attachimg=2]



  • [attachimg=1]

    加一行.
    然后 重启一下OE server 再重新更新模块

    [attachimg=2]



    [attachimg=3]




    view 里也加上这个字段.
    深圳-steven(32876341)  20:52:54
    这里为啥要重启?
    重庆-mrshelly(49812643)  20:53:20
    反正你最好改动都重启就好啦.
    弄久了, 你就知道改哪些哪些要重启.
    广州-可乐(13715416)  20:53:41
    谢谢mrshelly的教学



  • [attachimg=1]

    重新打开前面我们录入的 answer

    [attachimg=2]


    Question 是空的.

    进入"编辑"状态.

    点那个下拉
    [attachimg=3]

    [attachimg=4]


    选择我们前面输入的问题.

    [attachimg=5]

    保存后就OK了.


    重庆-mrshelly(49812643)  20:56:25
    其实, 这些步骤做完,你已经具备开发一个基本OE模块的能力了.
    北京-小义(345944084)  20:56:27
    能不能在加一个字段,是那个用户建立的这个问题。。?
    重庆-mrshelly(49812643)  20:56:36
    用到了多少python知识呢?
    没用到多少吧?
    就是copy copy copy
    复制了, 改一下.
    广州-可乐(13715416)  20:57:25
    。。。。。。。。。。看来从时间角度,开发一个项目,ph快好多
    深圳-Diego(1179418)  20:57:39
    能不能指定多个form view?
    重庆-mrshelly(49812643)  20:57:51
    整个 问题, 回答... 的添删改查.
    以及 回答关联到问题 的功能也有了.
    @北京-小义 能
    @深圳-Diego 能


    重庆-mrshelly(49812643)  20:59:01
    就在于你是否愿意去深入了解.
    深圳-Diego(1179418)  20:59:02
    ok,搬张椅子继续听讲
    重庆-mrshelly(49812643)  20:59:08
    结束了.



  • 北京-小义(345944084)  20:59:55
    那在加一个字段,显示是那个用户建立的这个问题吧。
    南京-ccdos(1431494)  21:00:35
    @广州-Mark  我已经贴上去了
    北京-小义(345944084)  21:00:42
    怎么关键到当前用户,并记录下来。
    广州-Mark(511525161)  21:01:08
    [attachimg=1]

    OK 加演一个 小义的需求.
    咱继续添加.


    [attachimg=2]


    [attachimg=3]

    好了... 谁回答的这个问题 出来了.
    是不是分分钟的事?


    重庆-mrshelly(49812643)  21:03:49
    so... End
    感谢大家 观看...



  • 精彩!!!
    可惜我来晚了,能不能再讲一遍?


Log in to reply