跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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 中文社区

X

xichun

@xichun
关于
帖子
11
主题
7
群组
0
粉丝
0
关注
0

帖子

最新 最佳 有争议的

  • 一个字段可以由用户从预先设置的一组值中选择来设置该字段的值
    X xichun

    需求:一个字段比如货物名称,其值每次总是"主板、电池、电阻、电容、发光二极管、三极管"中的任意几个,每次用户输入嫌麻烦,要求从一个列表中进行选择。
    实现:
        1、对象定义:

    <br />&nbsp; &nbsp; &nbsp; &nbsp;  _name=&quot;goods.name&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp;  _columns={&#039;name&#039;:fields.char(&#039;Name&#039;,size=32)}<br /><br />&nbsp; &nbsp; &nbsp; &nbsp;  _name=&#039;products&#039;<br />&nbsp; &nbsp; &nbsp; &nbsp;  _columns={<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;product_name&#039;:fields.char(&#039;货物名称&#039;,size=64),<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;goods_name&#039;:fields.many2one(&#039;goods.name&#039;,&#039;Goods Name&#039;),<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  }<br />
    



        2、视图定义:

    <br />&nbsp; &nbsp; &nbsp; &nbsp;  &lt;form&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  &lt;field name=&quot;goods_name&quot; widget=&quot;many2many&quot; invisible=&quot;1&quot;&nbsp; on_change=&quot;goods_name_changed(goods_name,product_name)&quot;/&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  &lt;field name=&quot;product_name&quot;/&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  &lt;button name=&quot;selectgoods&quot; string=&quot;选择&quot; type=&quot;object&quot; icon=&quot;gtk-execute&quot; help=&quot;选择预先设定的货物名称&quot; /&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp;  &lt;/form&gt;<br />
    



        3、change事件:

    <br />&nbsp; &nbsp; &nbsp; &nbsp;  def goods_name_changed(self, cr, uid, ids, select_ids, product_name,context=None):<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  name=self.pool.get(&#039;goods.name&#039;).read(cr,uid,select_ids[0][2],&#91;&#039;name&#039;])[0]&#91;&#039;name&#039;]<br /><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  p_name=&#91;]<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  if product_name:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  p_name=product_name.split(u&#039;,&#039;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  if name not in p_name:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  p_name.append(name)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  else:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  p_name.append(name)<br /><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  return {&#039;value&#039;: {&#039;goods_name&#039;:False,&#039;product_name&#039;:u&#039;,&#039;.join(p_name)}}<br />
    


        4、js:(FormView)

    <br />&nbsp; &nbsp; &nbsp; on_loaded: function&nbsp; (data) {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var result = this._super(data);<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (this.model == &#039;products&#039;) {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var self = this;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.$element.find(&#039;button&#039;).each(function () {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($(this).find(&#039;span&#039;).text() == &#039;选择&#039;) {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $(this).unbind().bind(&#039;click&#039;, { obj: self }, self.search_create_popup)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; })<br /><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return result;<br />&nbsp; &nbsp; &nbsp; },<br />&nbsp; &nbsp; &nbsp; &nbsp; search_create_popup: function (ev) {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var self = ev.data.obj;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.fields.goods_name.list_view.do_add_record();<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />
    



          5、效果图:

           


  • 关于v6.1中的计划的动作
    X xichun

    用7.0做自动执行的任务没有任何问题,换到6.1函数只执行一次,为什么?


  • 关于在新建模块中新建的group访问其他模块中的model的问题
    X xichun

    @Jeff供最简单方法:
    "access_res_users_sub_company_sys","res_users sub_company_sys","base.model_res_users","sub_company_sys",1,1,1,1
    在此谢过


  • 关于在新建模块中新建的group访问其他模块中的model的问题
    X xichun

    例如:在新建模块md_user中新建组:sub_company_sys,sub_company_sys 要访问base模块的res_users,如果不在md_user模块中继承res_users,安装时会报No such external ID currently defined in the system: mod_user.model_res_users的错误,所在只要在md_user模块中继承res_users就可以了,不知各位大虾还有没有其他更简单的方法?

    security.xml部分代码:

    <br />&nbsp; &nbsp; &lt;!--定义子公司系统访问组--&gt;<br />&nbsp; &nbsp; &lt;record model=&quot;res.groups&quot; context=&quot;{&#039;noadmin&#039;:True}&quot; id=&quot;sub_company_sys_access&quot;&gt;<br />&nbsp; &nbsp; &nbsp; &lt;field name=&quot;name&quot;&gt;Sub Company Access Rights&lt;/field&gt;<br />&nbsp; &nbsp; &lt;/record&gt;<br />&nbsp; &nbsp; &lt;!--定义子公司系统设置组--&gt;<br />&nbsp; &nbsp; &lt;record model=&quot;res.groups&quot; context=&quot;{&#039;noadmin&#039;:True}&quot; id=&quot;sub_company_sys&quot;&gt;<br />&nbsp; &nbsp; &nbsp; &lt;field name=&quot;name&quot;&gt;Sub Company Configuration&lt;/field&gt;<br />&nbsp; &nbsp; &nbsp; &lt;field name=&quot;implied_ids&quot; eval=&quot;[(4, ref(&#039;sub_company_sys_access&#039;))]&quot;/&gt;<br />&nbsp; &nbsp; &lt;/record&gt;<br />
    



    ir.model.access.csv文件部分代码:

    <br />&quot;access_res_users_sub_company_sys&quot;,&quot;res_users sub_company_sys&quot;,&quot;model_res_users&quot;,&quot;sub_company_sys&quot;,1,1,1,1<br /><br />
    



    md_user.py部分代码:

    <br />class modify_user(osv.osv):<br />&nbsp; &nbsp; _inherit = &quot;res.users&quot;<br />modify_user()<br />
    




  • 让OE支持base_geoengine模块
    X xichun

    一、安装postgis(PostgreSQL8.3为例)
        开始-程序-PostgreSQL8.3-Application Stack Builder(如果没有Application Stack Builder,请卸载已安装的PostgreSQL,下载PostgreSQL8.3安装程序重新安装),在欢迎页选择已安装的PostgreSQL服务,单击下一步,展开Sqptial Extensions,选择"PostGIS 1.5 for PostgreSQL8.3 v1.5.3",一直下一步直到安装完成。

    二、在数据库中配置postgis
        1、创建plpgsql语言,在选定的数据库名上右击,在弹出菜单中选择"CREATE 脚本",在Query窗口中输入"CREATE language plpgsql",点执行查询;
        2、在Query窗口中运行base_geoengine\postgis_sql下的postgis.sql和spatial_ref_sys.sql文件。


  • 求教:关于翻译问题
    X xichun

    自已来回复,

    <br />class device_assets_category(osv.osv):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &#039;&#039;&#039;Assets Category&#039;&#039;&#039;<br />&nbsp; &nbsp; _name=&#039;device.assets.category&#039;<br />&nbsp; &nbsp; _columns={<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;name&#039;:fields.char(&#039;Name&#039;,size=64,required=True,translate=True),<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; _sql_constraints = [<br />&nbsp; &nbsp; &nbsp; &nbsp; (&#039;device_assets_category_uniq&#039;, &#039;unique (name)&#039;, &#039;device assets category name must be unique.&#039;)<br />&nbsp; &nbsp; ]<br />
    


    加上"translatel"属性


  • 求教:关于翻译问题
    X xichun

    open.py文件:

    <br />{<br />&nbsp; &nbsp; &quot;name&quot;: &quot;Device Management&quot;,<br />&nbsp; &nbsp; &quot;version&quot;: &quot;1.1&quot;,<br />&nbsp; &nbsp; &quot;category&quot;: &quot;Device Management&quot;,<br />&nbsp; &nbsp; &#039;complexity&#039;: &quot;easy&quot;,<br />&nbsp; &nbsp; &quot;website&quot;: &quot;http://www.xxx.com&quot;,<br />&nbsp; &nbsp; &#039;depends&#039;: &#91;&#039;base&#039;,&#039;region&#039;],<br />&nbsp; &nbsp; &#039;init_xml&#039;: &#91;&#039;device_data.xml&#039;],<br />&nbsp; &nbsp; &#039;update_xml&#039;: [<br />&nbsp; &nbsp; &nbsp; &nbsp; &#039;device_view.xml&#039;,<br />&nbsp; &nbsp; ],<br />&nbsp; &nbsp; &#039;demo_xml&#039;: &#91;],<br />&nbsp; &nbsp; &#039;test&#039;: &#91;],<br />&nbsp; &nbsp; &#039;installable&#039;: True,<br />&nbsp; &nbsp; &#039;application&#039;: True,<br />&nbsp; &nbsp; &#039;auto_install&#039;: False,<br />&nbsp; &nbsp; &quot;css&quot;: [ &#039;static/src/css/device.css&#039; ],<br />&nbsp; &nbsp; &#039;js&#039;: &#91;&#039;static/src/js/device.js&#039;],<br />}<br />
    


    device_data.xml文件(部分):

    <br />&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />&lt;openerp&gt;<br />&nbsp; &nbsp; &lt;data noupdate=&quot;1&quot;&gt;<br />	&lt;record id=&quot;assets_category1&quot; model=&quot;device.assets.category&quot;&gt;<br />	&nbsp; &nbsp; &lt;field name=&quot;name&quot;&gt;Optical gas detector&lt;/field&gt;<br />	&lt;/record&gt;<br />&nbsp; &nbsp; &lt;/data&gt;<br />&lt;/openerp&gt;<br />
    


    zh_CN.po文件(部分):

    <br />#. module: device<br />#: model:device.assets.category,name:device.assets_category1<br />msgid &quot;Optical gas detector&quot;<br />msgstr &quot;光学气体检测仪&quot;<br />
    



    为件么"[b]Optical gas detector[/b]"翻译不过来?


  • 关于新建对象时,客户端通过js函数为字段赋值的问题
    X xichun

    还是我自已来回答一下:

    添加js代码:$(btn.parents('.oe_frame')[0]).parent().prev('td').find('input').change();


  • 关于新建对象时,客户端通过js函数为字段赋值的问题
    X xichun

    目的:新建对象时,在客户端通过调用js函数为对象字段赋值
    问题:赋值成功,保存时报"The following fields are invalid"错误


    部分视图代码:

    <br />&nbsp; &nbsp; &nbsp; &lt;group colspan=&quot;4&quot; col=&quot;6&quot;&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;group colspan=&quot;3&quot; col=&quot;3&quot;&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;field name=&quot;code&quot;/&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;/group&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;group colspan=&quot;3&quot; col=&quot;3&quot; attrs=&quot;{&#039;invisible&#039;: [(&#039;state&#039;,&#039;!=&#039;, &#039;draft&#039;)]}&quot;&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;html&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;embed id=&quot;simple&quot; type=&quot;application/nphid&quot; objname=&quot;simples&quot; hidden=&quot;true&quot; height=&quot;0&quot; width=&quot;0&quot; /&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;button&quot; value=&quot;获得设备代码&quot; onclick=&quot;device_setparameters(98,this)&quot; class=&quot;oe_button oe_form_button_save&quot;/&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;html&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;/group&gt;<br />&nbsp; &nbsp; &nbsp; &lt;/group&gt;<br /><br />
    




    js代码如下:

    <br />function device_setparameters() {<br />&nbsp; &nbsp; var ophid = document.getElementById(&#039;simple&#039;);<br />&nbsp; &nbsp; var cmd = arguments[0];<br />&nbsp; &nbsp; var btn = $(arguments[1]);<br />&nbsp; &nbsp; var result;<br />&nbsp; &nbsp; if (cmd == 98) {<br />&nbsp; &nbsp; &nbsp; &nbsp; result = ophid.test(cmd);//调用插件的方法<br />&nbsp; &nbsp; &nbsp; &nbsp; if (result == &quot;&quot;) {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; alert(&quot;没有设备连接到主机!&quot;);<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $(btn.parents(&#039;.oe_frame&#039;)[0]).parent().prev(&#039;td&#039;).find(&#039;:input&#039;).val(&#039;&#039;);<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $(btn.parents(&#039;.oe_frame&#039;)[0]).parent().prev(&#039;td&#039;).find(&#039;input&#039;)[0].value=result;<br />&nbsp; &nbsp; }<br />}<br />
    



    当我点击"[b]获得设备代码[/b]"这个button时通过js函数"[b]device_setparameters[/b]"为[b]<field name="code"/>/b赋值,赋值成功,但在保存时提示"The following fields are invalid"


    [b]求解答[/b]


    [quote][/quote]


  • 项目合作事宜
    X xichun

    楼上这位,我们不是没有诚意,只是有的要求不变在上面透露!具体事宜也可联系电话:13272671821席先生


  • 项目合作事宜
    X xichun

    具体请联系QQ:675938238恰谈。

  • 登录

  • 没有帐号? 注册

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