允许使用条形码作为启动程序
odoo11-addon-barcode-action的Python项目详细描述
此模块允许使用条形码作为操作的启动程序。
该操作将启动一个使用条形码的函数以返回操作。
目录
Usage
必须使用上下文中的以下数据配置操作: *模型:我们可以找到方法的模型(必需) *方法:要执行的方法(必需) *res_id:id作为基(可选)
方法必须返回操作。使用演示数据安装此模块将 安装一个演示应用程序,允许系统管理员查找 由编码在条形码中的外部引用组成的伙伴。
转到settings/find partners并扫描包含 现有合作伙伴的内部引用。你一读条形码 系统将重定向到该合作伙伴的窗体视图。
本例的技术实现:
操作:
<act_window id="res_partner_find" name="Find Partner" res_model="barcode.action" view_mode="form" view_type="form" context="{'default_model': 'res.partner', 'default_method': 'find_res_partner_by_ref_using_barcode'}" target="new"/> <menuitem id="menu_orders_customers" name="Find partners" action="res_partner_find" parent="base.menu_administration"/>
python代码:
import json from odoo import api, models, _ from odoo.tools.safe_eval import safe_eval class ResPartner(models.Model): _inherit = 'res.partner' @api.multi def find_res_partner_by_ref_using_barcode(self, barcode): partner = self.search([('ref', '=', barcode)], limit=1) if not partner: action = self.env.ref('res_partner_find') result = action.read()[0] context = safe_eval(result['context']) context.update({ 'default_state': 'warning', 'default_status': _('Partner with Internal Reference ' '%s cannot be found') % barcode }) result['context'] = json.dumps(context) return result action = self.env.ref('base.action_partner_form') result = action.read()[0] res = self.env.ref('base.view_partner_form', False) result['views'] = [(res and res.id or False, 'form')] result['res_id'] = partner.id return result
Credits
Contributors
- 恩里克·托贝拉,etobella@creublanca.es>;
- 乔迪芭蕾舞演员<;jordi.ballester@eficent.com>;
Maintainers
此模块由OCA维护。
oca,或odoo社区协会,是一个非营利性组织 任务是支持odoo特性和 促进其广泛应用。
这个模块是github上OCA/server-ux项目的一部分。
欢迎您的贡献。要了解如何访问https://odoo-community.org/page/Contribute。