通过OpenERP-7中的特定按钮以只读模式打开表单

时间:2014-08-10 11:01:48

标签: jquery python xml forms openerp

我想知道在OpenERP-7中可以通过按钮以只读模式调用表单。就像表格可以通过一些按钮编辑,但我想通过一个特定的按钮设置一些限制。我希望当用户单击按钮时,表单以只读模式打开,用户无法创建/编辑/删除任何记录。   我试着在我的.py文件中使用它:

 def views(self,cr,uid,ids,context):
     for id in ids:
         deg_obj=self.pool.get('deg.form').browse(cr,uid,id)
         my_id=int(deg_obj.my_products)
     ss= int(deg_obj.categ_temp2)   
     domain = [('categ_id','=',ss)]
     return {
         'type': 'ir.actions.act_window',
         'name': _('Product'),
         'res_model': 'product.product',
         'view_type': 'form',
         'view_mode': 'tree,form',
         'target': 'current',
         'domain': domain,
         'store':False,
         'create':False,
         'edit':False     
               }

这是我的xml代码:

             <button name="views" string="VIEW PRODUCT" type="object" /> 

但它没有与此合作。我不知道我是否必须在xml代码中添加任何属性或者什么。因为只有使用此按钮调用,表单才会处于查看模式。 任何帮助或指导将不胜感激。谢谢大家

2 个答案:

答案 0 :(得分:0)

如果您希望输入对象以只读模式打开,那么您必须在只读输入字段上添加此属性,如下所示:

 <input type="text" readonly/>

如果你想让它被禁用,那就相同了。

 <input type="text" disabled/>

使用jQuery,它就像这样简单地应用:

 $("input").attr("readonly",true);
 $("input").attr("disabled",true);

并像这样删除:

 $("input").removeAttr("readonly");
 $("input").removeAttr("disabled");

使用2的不同之处在于,当使用disabled时,不会在表单帖子中提交值,而使用readonly将会提交。

这适用于大多数输入类型,但收音机/复选框输入除外。对于这些类型的输入字段,您可以查看有关主题的有用帖子:Can HTML checkboxes be set to readonly?

在您的网页上执行此操作的简单功能如下:

      function makeReadOnly() {
           $("form :input").attr("readonly",true);
      }

      function makeEditable() {
           $("form :input").removeAttr("readonly");
      }

答案 1 :(得分:0)

您可以从按钮传递上​​下文,并可以在下面的所有表单字段中设置如下所示的attrs:

<field name="field_name" attrs="{'readonly':[('your_context','=',True)]}">