[一]开源ERP:odoo19二次开发问题-原库存模块问题

##概述

一直关注这个开源ERP,之前部署过17、18版本,但是没用起来,因为有些习惯和字段不太适合自己。比如审批功能,就一直不知道怎么在工作 环境中落地,因为实际工作一直使用的是钉钉,流程设计、流程功能等都习惯钉钉的方式,由于之前能力有限,没有去写这块的功能,现在Cusor可以帮我把odoo规范、组件、格式要求等方面处理好,所以开始写自己想要的功能。

##修改的模块

现在修改的模块是库存模块,因为原系统里有"物料代码"(不是odoo原生库存模块中的BarCode),而且公司要求报销材料中的发票项目名称与入库项目名称一致,但是由于前期沟通及行业术语等原因,供应商开具发票后(他们的名称是从发票系统里直接选的),项目名称与入库项目名称不一样,此时物料已经走完检验、入库、出库、使用全部流程,所以需要增加一个别名,考虑旧代码兼容问题,再增加了一个外部代码。另外,旧数据导入时,旧数据是带有单位的,odoo中的物料单位是另外一个可配置的小模块管理的,所以在物料表中增加计量单位的字段,汇总后要增加的字段如下:

store_code,ext_code,unit_name,ext_name

使用cusor可以方便把这些字段加进去,我是指定了model的,在这里的model是product_template

##出现的问题

第一个问题是提示:

EvaluationError: Name 'product_variant_count' is not defined

这个错误比较隐晦,正常浏览时不会弹任何信息,界面显示,功能都正常,只有按F12后,才会显示有2条错误提示,跟踪后发现此错误在这个field中:

html 复制代码
<field
     name="uom_ids"
     widget="many2many_uom_tags"
     options="{'no_quick_create': True, 'edit_tags': True}"
               groups="uom.group_uom"
               force_save="1"
     context="{'product_id': product_variant_id if product_variant_count == 1 else False, 'product_ids': product_variant_ids, 'show_variant_name': product_variant_count > 1}"/>

的context部分,抛出异常的位置是前端js:

javascript 复制代码
function _innerEvaluate(ast) {
            switch (ast.type) {
            case 0:
            case 1:
                return ast.value;
            case 5:
                if (ast.value in evalContext) {
                    return evalContext[ast.value];
                } else if (ast.value in BUILTINS) {
                    return BUILTINS[ast.value];
                } else {
                    throw new EvaluationError(`Name '${ast.value}' is not defined`);
                }
...

使用提问给Cusor,它也找不出问题,判定应该是在这个语法里,对product_variant_count这个变量解释有问题,最后修改成:

html 复制代码
context="{'product_id': product_variant_id if 'product_variant_count' == 1 else False, 'product_ids': product_variant_ids, 'show_variant_name': 'product_variant_count' > 1}"

没报错,调试js时也顺利通过。虽然Cusor判定这个语句是有问题的,它认为:

html 复制代码
'product_variant_count' == 1

始终是False,是一个无意义的判断,但是在调试js时,这里是确实使用了product_variant_count这个变量,并不是认定为字符串。

相关推荐
海绵宝宝转agent3 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭3 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
小小龙学IT3 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
2601_962071574 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境5 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
Java后端的Ai之路5 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
计算机毕业编程指导师5 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师5 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
Zootopia6265 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
Y3815326625 小时前
搜索 API 延迟优化:并发数、超时与超时的真实代价
python·搜索引擎