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

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

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

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

6.1中 xml里面的js代码的问题



  • 请教一个问题,不知道我问的对不对,因为我对JS代码不是很懂。
    A模块的XML代码构建了一个form,tree用来显示图片。在另一B模块的py文件中定义一个one2many型字段,同时在xml中定义显示。现在的问题是,下面的代码在6.0中没有问题,正确的显示是,在xml中默认显示form。但是到了6.1,却变成了xml中默认显示是tree。
    我将<field name="web_gallery_image_ids"/>改成<field name="web_gallery_image_ids" mode="form"/>,虽然显示了form,但是与6.0中还不一样。
    在6.0中,form中的file,Category,Commentary三个字段并没有显示,而是显示的是extention字段(我估计这个是js代码控制的),但是到了6.1中,却显示除了file,Category,Commentary这三个字段,如果我的估计没错,那么就是那段js代码没有执行。
    请大家帮忙看下这段js代码的用处,以及为何没有工作(如果我估计没错的话),非常非常感谢。

    #B模块中的调用代码
    [code]
      'web_gallery_image_ids': fields.one2many('web.gallery.images',
                                        'product_id',
                                        'Images'),

    <field name="arch" type="xml">
                    <notebook position="inside">
                        <page string="Gallery">
                            <field name="web_gallery_image_ids"/>                     
                        </page>
                    </notebook>
                </field>
    [/code]
    #A模块中定义视图xml代码
    [code]
    <record id="web_gallery_images_form" model="ir.ui.view">
    <field name="name">web.gallery.images.form</field>
    <field name="model">web.gallery.images</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
    <form string="Image">
    <field name="extention" invisible="1" />
    <field string="File" name="file" />
    <newline />
    <field string="Category" name="category"
    widget="selection" />
    <newline />
    <field string="Commentary" name="comment" />
    <html>
    <script type="text/javascript">
    jQuery('form').submit(function () {
    var fileName = jQuery("input.binary").val();
    var fileSplit = fileName.split('.');
    var fileExt = fileSplit[fileSplit.length -1];
    jQuery('input[id*=web_gallery_image_ids/extention]').val(fileExt);
    });

    var buttons = jQuery("button");
    jQuery(buttons[0]).hide();
    jQuery(buttons[1]).text("Save");
    </script>
    </html>
    </form>
    </field>
    </record>

    <record id="web_gallery_images_tree" model="ir.ui.view">
    <field name="name">web.gallery.images.tree</field>
    <field name="model">web.gallery.images</field>
    <field name="type">tree</field>
    <field name="arch" type="xml">
    <tree string="Image">
    <field string="Category" name="category" />
    <field string="File URL" name="url" />
    <field string="Commentary" name="comment" />
    </tree>
    </field>
    </record>
    [/code]



  • 请教一个问题,不知道我问的对不对,因为我对JS代码不是很懂。
    A模块的XML代码构建了一个form,tree用来显示图片。在另一B模块的py文件中定义一个one2many型字段,同时在xml中定义显示。现在的问题是,下面的代码在6.0中没有问题,正确的显示是,在xml中默认显示form。但是到了6.1,却变成了xml中默认显示是tree。
    我将<field name="web_gallery_image_ids"/>改成<field name="web_gallery_image_ids" mode="form"/>,虽然显示了form,但是与6.0中还不一样。
    在6.0中,form中的file,Category,Commentary三个字段并没有显示,而是显示的是extention字段(我估计这个是js代码控制的),但是到了6.1中,却显示除了file,Category,Commentary这三个字段,如果我的估计没错,那么就是那段js代码没有执行。
    请大家帮忙看下这段js代码的用处,以及为何没有工作(如果我估计没错的话),非常非常感谢。

    #B模块中的调用代码
    [code]
      'web_gallery_image_ids': fields.one2many('web.gallery.images',
                                        'product_id',
                                        'Images'),

    <field name="arch" type="xml">
                    <notebook position="inside">
                        <page string="Gallery">
                            <field name="web_gallery_image_ids"/>                     
                        </page>
                    </notebook>
                </field>
    [/code]
    #A模块中定义视图xml代码
    [code]
    <record id="web_gallery_images_form" model="ir.ui.view">
    <field name="name">web.gallery.images.form</field>
    <field name="model">web.gallery.images</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
    <form string="Image">
    <field name="extention" invisible="1" />
    <field string="File" name="file" />
    <newline />
    <field string="Category" name="category"
    widget="selection" />
    <newline />
    <field string="Commentary" name="comment" />
    <html>
    <script type="text/javascript">
    jQuery('form').submit(function () {
    var fileName = jQuery("input.binary").val();
    var fileSplit = fileName.split('.');
    var fileExt = fileSplit[fileSplit.length -1];
    jQuery('input[id*=web_gallery_image_ids/extention]').val(fileExt);
    });

    var buttons = jQuery("button");
    jQuery(buttons[0]).hide();
    jQuery(buttons[1]).text("Save");
    </script>
    </html>
    </form>
    </field>
    </record>

    <record id="web_gallery_images_tree" model="ir.ui.view">
    <field name="name">web.gallery.images.tree</field>
    <field name="model">web.gallery.images</field>
    <field name="type">tree</field>
    <field name="arch" type="xml">
    <tree string="Image">
    <field string="Category" name="category" />
    <field string="File URL" name="url" />
    <field string="Commentary" name="comment" />
    </tree>
    </field>
    </record>
    [/code]



  • 谁教你这样用的?



  • 这个模块我写的,主站的模块,6.0下用的没有问题,6.1就不行了。这个模块是一个保存并显示图片的模块,对我来说用处很大,因此想搞清楚是怎么回事。



  • 嗯. 没有玩过这样高级的....
    Mark 一下. 后面学习....



  • 这种写法在ie9里完全不行,不知道有没有什么解决办法。js可以从外部调用。


登录后回复
 

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