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

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

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

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

手把手教你在7.0下开发wizard【多亏了总监指导,大家一起感谢他】



  • 首先,总监集耐心,爱心,雄心与一心;学富,财富,情妇与一身。
    气度非凡,气宇轩昂,气壮河山;英俊潇洒,英姿飒爽,英姿焕发。
    总监1岁会打字,3岁会编程,4岁满地跑,6岁单手抱电脑;
    10岁进微软,15开公司,18收谷歌,20成首富。
    看淡世间情与乱,屈身公司当总监。
    热心教导新来人,不求谢来不求钱。


    咳咳,说好的教程呢?写二楼好了,一楼赞总监



  • 首先,总监集耐心,爱心,雄心与一心;学富,财富,情妇与一身。
    气度非凡,气宇轩昂,气壮河山;英俊潇洒,英姿飒爽,英姿焕发。
    总监1岁会打字,3岁会编程,4岁满地跑,6岁单手抱电脑;
    10岁进微软,15开公司,18收谷歌,20成首富。
    看淡世间情与乱,屈身公司当总监。
    热心教导新来人,不求谢来不求钱。


    咳咳,说好的教程呢?写二楼好了,一楼赞总监



  • 整些没用的. 把最重要的教程搞丢了.



  • 首先,先安装前两个模块,即oecn_training与oecn_training_classroom
    oecn_training_classroom_wizard是基于oecn_training_classroom改写的,当然你也可以直接装oecn_training与oecn_training_classroom_wizard.zip!
    效果图见附件。
    wizard主要是定义一个osv_memory类,视图上加一个target,其他跟正常的view没啥区别。

    现在说下怎么基于oecn_training_classroom定义wizard
    首先,在oecn_training_classroom下写一个class,我是在classroom.py里写的。当然不一定写在同一个文件里。代码如下:
    [code]# -- coding: utf-8 --
    from openerp.osv import fields, osv

    class oecn_training_classroom(osv.osv):
        _name = 'oecn.training.classroom'
        _description = u'OECN 教室'
        _columns = {
            'number':fields.char(u'编号', size=64, select=True),
            'capacity':fields.integer(u'容纳人数', select=True),
            'location':fields.char(u'地点', size=125, select=True),
            'room_ids':fields.many2many('oecn.training.classroom.wizard',
            'classroom_many2many',
            'class_room_id','room_id',  string='room'}
            }
    class oecn_training_classroom_wizard(osv.osv_memory):
        _name = 'oecn.training.classroom.wizard'
        _description = u'OECN 教室2'
        columns = {
            'p_number':fields.integer(u'容纳人数', select=True),
            'class_room_ids':fields.many2many('oecn.training.classroom', 'classroom_many2many',
            'room_id', 'class_room_id', string='room'
            }
        def act_done(self, cr, uid, ids, context=None):
            raise osv.except_osv(
    ('Error!'), _('Set OK!'))
       
       
    oecn_training_classroom()
    oecn_training_classroom_wizard()
    [/code]
    其中最关键的继承osv.osv_memory类

    xml里添加如下代码:
    [code]<!--定义表单视图-->
            <record model="ir.ui.view" id="oecn_training_classroom_wizard_form_view">
                <field name="name">课程表单</field>
                <field name="type">form</field>
                <field name="model">oecn.training.classroom.wizard</field>
                <field name="arch" type="xml">
                    <form string="课程表单" version="7.0">
                    <button name="act_done" string="Set It!" type="object"/>
                        <field name="p_number"/>
                        <field name="class_room_ids" widget="many2many_tags"/>
                    </form>
                </field>
            </record>
            <!--定义列表视图-->
    <!--定义视图动作-->
        <record model="ir.actions.act_window"  id="action_oecn_training_classroom_wizard">
            <field name="name">课程</field>
            <field name="res_model">oecn.training.classroom.wizard</field>
            <field name="view_type">form</field>
            <field name="view_mode">form,tree</field>
            <field name="view_id" ref="oecn_training_classroom_wizard_form_view"/>
            <field name="target">new</field>
        </record>
    <!--定义菜单-->
        <menuitem id="oecn_menu" name="OECN"/>
        <menuitem id="oecn_training_menu" name="OECN Training" parent="oecn_menu"/>
        <menuitem id="oecn_training_classroom_wizard_menu2" name="OECN Training Lesson2" parent="oecn_training_menu" action="action_oecn_training_classroom_wizard"/> [/code]

    注意几点,wizard不需要tree视图,另外,需要在视图动作下加上<field name="target">new</field>。
    这样wizard就出现了,然后可以根据业务逻辑添加自己想要的功能。。

    貌似没有其他的了。。wizard只会挡门外汉,进来了发现没那么难。。



  • [quote author=mrshelly link=topic=16611.msg28995#msg28995 date=1411031355]
    整些没用的. 把最重要的教程搞丢了.
    [/quote]


    嘿嘿。。


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待