Odoo8中“更多”下拉菜单选项指定后台执行代码

在Odoo8中的仓库模块,根据每日最小安全库存数量,系统会自动生成一些补货单,而且是一个产品会生成一笔,如果产品比较多,这里生成的补货单也会很多。

如果这里的补货单没有即时处理,那相同产品后续不会再生成新的补货单。

所以采购人员要求不处理的补货单可以手动来取消,这样方便第二天能产生出新的补货单。

现在取消补货单的功能是放在form视图中,需要逐张单据点开,再去点取消按钮,不方便操作。采购人员希望是可以全选一次取消所选单据,根据之前的经验,我们可以在tree视图的“更多”按钮下加一个菜单项目,但这个取消比较单纯,我不想使用向导来弹出一个新窗口,这完全是一个多余的操作。经查询 odoo的源码,在其它模块也有类似的需求,并且odoo也提供了一些动作类型来处理此类需求,主要xml配置如下:

<record id="action_procurement_order_cancel" model="ir.actions.server">
        <field name="name">取消补货单</field>
        <field name="model_id" ref="procurement.model_procurement_order"/>
        <field name="state">code</field>
        <field name="code">
            if context.get(‘active_model‘) == ‘procurement.order‘ and context.get(‘active_ids‘):
                self.cancel(cr, uid, context[‘active_ids‘], context=context)
        </field>
    </record>  

    <record id="ir_procurement_order_cancel" model="ir.values">
        <field eval="‘client_action_multi‘" name="key2"/>
        <field eval="‘procurement.order‘" name="model"/>
        <field name="name">取消补货单</field>
        <field eval="‘ir.actions.server,%d‘%action_procurement_order_cancel" name="value"/>
    </record>

这里使用到了ir.actions.server服务器动作,就是说点击菜单项目时,不弹出向导窗口,只是执行一个服务器动作,并且这里配置需要在服务器上执行的代码,就是调用self.cancel方法,所选择的数据id列表会通过上下文参数context中的active_ids带入。

时间: 2024-12-30 03:15:51

Odoo8中“更多”下拉菜单选项指定后台执行代码的相关文章

Delphi访问网页中的下拉菜单

Delphi通过TWebBrowser浏览网页,然后访问该网页中的下拉菜单: uses MsHtml;procedure TForm1.Button1Click(Sender: TObject);var  doc: IHTMLDocument2;  coll: IHTMLElementCollection;  iPos, iIndex: Integer;  selElem: IHtmlSelectElement;  optElem: IHtmlOptionElement;begin  doc :

yii框架中的下拉菜单和单选框

yii中的下拉菜单: 第一种: <?= $form->field($model, 'parent_id')->dropDownList(ArrayHelper::map($data,'cat_id','new_cat_name') ,['prompt' => '请选择父级分类']) ? 第二种: <?= $form->field($model, 'banner_address')->dropDownList(ArrayHelper::map(address::fi

Bootstrap中的下拉菜单

下拉菜单(基本用法) 小伙伴们注意,在Bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,它对应的文件: ?  LESS版本:对应的源码文件为 dropdowns.less ?  Sass版本:对应的源码文件为 _dropdowns.scss ?  编译后的Bootstrap版本:查看bootstrap.css文件第3004行-第3130行 在使用Bootstrap框架的下拉菜单时,必须调用Bootstrap框架提供的bootstrap.js文件.当然,如果你使用的是未编译版

JQuery设置获取下拉菜单选项的值 多实例

分享下JQuery如何设置获取下拉菜单某个选项的值,多种方法,值得收藏. JQuery获取和设置Select选项 获取Select :获取select 选中的 text :$(“#ddlRegType”).find(“option:selected”).text();获取select选中的 value:$(“#ddlRegType “).val();获取select选中的索引:$(“#ddlRegType “).get(0).selectedIndex;设置select:设置select 选中的

Android ActionBar中的下拉菜单

在ActionBar中添加下拉菜单,主要有一下几个关键步骤: 1. 生成一个SpinnerAdapter,设置ActionBar的下拉菜单的菜单项 2. 实现ActionBar.OnNavigationListener接口,当点击ActionBar的菜单项是进行相应的操作 3. 调用setNavigationMode()方法将ActionBar的操作模型设置为ActionBar.NAVIGATION_MODE_LIST. 注意:这个步骤应该在Activity的onCreate()回调函数时执行

解决phpcms模版设置中不能显示栏目首页模板,栏目列表页模板,内容页模板等下拉菜单选项的问题!

第1步:检查相应的模版文件夹中是否有模版文件 一般地,查看目录phpcms/templates/default[模板风格标识]/content 栏目首页模板:以(category_)开头,category_xxx 栏目列表页模板:以(list_)开头,list_xxx 内容页模板:以(show_)开头,show_xxx 如果模板文件存在,看第二步. 第2步:查看文件夹中的模板文件是否包含了中文 例如:category - 副本.html 注意模板文件名不能有中文,因为在后台模板设置中获取模板文件

rf中关于下拉菜单的选择

刚才在使用rf模拟QQ注册的时候,遇到了出生年月日等下拉菜单的选择. 之前混迹于rfs群里,经常能见到select from list by value/label 的关键字,所以尝试了一下. 结果不太理想,去社区搜寻了一下,发现这个下拉菜单不是标准的select下拉菜单,所以改用click element关键字,定位到需要的选项就好了. 其实在webdriver里面遇到下拉菜单也是直接定位然后点击的. 在选择的过程中发现年份的下拉菜单比较长,可能要选择的年份在界面不可见的地方,也就是需要下拉滚

初学者--bootstrap(六)组件中的下拉菜单----在路上(10)

组件---下拉菜单 用于显示链接列表的可切换.有上下文的菜单.下拉菜单的 JavaScript 插件让它具有了交互性. 将下拉菜单触发器和下拉菜单都包裹在 .dropdown 里,或者另一个声明了 position: relative; 的元素.然后加入组成菜单的 HTML 代码.代码与效果如下: <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type=

【网摘】C#.NET 在 MVC 中动态绑定下拉菜单的方法

1. 已知下拉菜单列表项: 在 Controller 控制器类中输入已下代码  1 public class DemoController : Controller 2 { 3     public ActionResult BindDropDownList() 4     { 5         List<SelectListItem> select1 = new List<SelectListItem> 6         { 7             new SelectL