分类 erp 下的文章

原文来自odoo哥公众号

odoo日期类型字段的快捷录入
原创 odoo哥 Odoo哥
2025年01月17日 09:24 湖南
在odoo应用中,日期类型的字段比较常见。一般操作人员在UI录入日期时,都是通过鼠标点击,弹出日历下拉,然后选择不同的年、月、日。如果需要选择的年或月不是当前年月,还要去切换,这样可能会影响录入的效率。其实在Odoo框架源码中,有针对日期类型字段的快捷录入方式。我们来看源码:

addons\web\static\src\core\l10n\dates.js

关键的方法是:

/**
 * Smart date inputs are shortcuts to write dates quicker.
 * These shortcuts should respect the format ^[+-]\d+[dmwy]?$
 *
 * e.g.
 *   "+1d" or "+1" will return now + 1 day
 *   "-2w" will return now - 2 weeks
 *   "+3m" will return now + 3 months
 *   "-4y" will return now + 4 years
 *
 * @param {string} value
 * @returns {NullableDateTime} Luxon datetime object (in the user's local timezone)
 */
function parseSmartDateInput(value) {
    const match = value.match(smartDateRegex);
    if (match) {
        let date = DateTime.local();
        const offset = parseInt(match[2], 10);
        const unit = smartDateUnits[(match[3] || "d").toLowerCase()];
        if (match[1] === "+") {
            date = date.plus({ [unit]: offset });
        } else {
            date = date.minus({ [unit]: offset });
        }
        return date;
    }
    return false;
}

从这里可以看出,在日期型字段,我们可以录入一个类似‘+10'、'+3w'、'-1m'、'+1y'这样的字符串,odoo将根据录入内容自动计算出日期值。第一个符号为'+','-'号,表示在当前日期之后还是之前,后面跟着一个数字,最后面是一个字母:d-天,m-月,w-周,y-年,如果不带字母的表示默认为天。
比如今天是2025年1月17号,我在报价单的日期字段录入下图所示的内容:
图片
640.png
然后按回车键,系统将自动变换为15天后的日期:
图片
640 (1).png
好啦,这么好用的功能赶快写到用户操作手册中去吧,告诉客户他可以不用鼠标快速地录入想要的日期啦。

【原创】源码安装多版本odoo(含odoo12.0、13.0、14.0、15.0、16.0、17.0、18.0)
思路:
前提基于ubuntu22,并且预先配好中国大陆ubuntu安装源:
参考:https://linuxmirrors.cn/use/

一、在ubunt安装好odoo的运行环境依赖:

sudo apt-get update
sudo apt-get install -y python3-pip
sudo apt install git python3-pip build-essential wget python3-dev python3-venv \
    python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev \
    python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev \
    libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev \
    liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev

二、Python 依赖安装好之后,还需要安装一些前端所需的npm依赖包:

sudo apt-get install -y npm
sudo ln -s /usr/bin/nodejs /usr/bin/node

这里如果npm依赖包的安装很慢,请更换淘宝最新的npm源:设置命令如下:

- 阅读剩余部分 -

浅浅试用了DataEase开源版,并且跟odoo结合起来了。下边是笔记:
1、安装DataEase的docker版:直接起容器:
用官方的或者用github上大佬出品的都可行:
我用的这里:https://github.com/wojiushixiaobai/dataease
2024-08-27T04:55:34.png
2、容器相互之间是隔离的,所以要想办法互通,目的是让DataEase能访问odoo的PG数据库:
先看看odoo的所在网络叫什么,用docker network ls查到叫odoo-13-docker-compose_default,
再看看DataEase的容器名叫什么,用docker ps看到名字叫de_core,
最后用下边命令,让容器de_core可访问odoo-13-docker-compose_default网段:
docker network connect odoo-13-docker-compose_default de_core
3、安装成功,登入DataEase管理后台,建数据源:目的是让DataEase能访问odoo的PG数据库:
http://odoo123.com:8100/
建数据源:
2024-08-27T05:04:40.png
可以在数据源表里看到Odoo的数据表啦:额外说一嘴,可以用来观察学习odoo的数据字典:
2024-08-27T05:05:29.png
4、最后这里安装了odoo的微信小程序商城模块,所以用oe举例建个数据集和仪表盘:
2024-08-27T05:07:01.png
5、数据集和结构:
2024-08-27T05:07:20.png
6、odoo的dataease仪表盘:
2024-08-27T05:08:16.png

有了这个神器,使用发散思维,可联想的空间挺大的。

https://github.com/KittyMissing/oejia下载回来模块,按照Odoo模块安装教程,放到addons目录下。注意事项:git clone得到的路径需要注意:

第一步进入odoo容器内,在docker容器里安装gcc和python-dev:

apt-get update
apt-get install python3-dev
apt-get install gcc
第二步,安装Oejia模块的依赖:
python3 -m pip install pycrypto
python3 -m pip install xmltodict==0.11.0
python3 -m pip install itsdangerous==0.24
python3 -m pip install kdniao==0.1.2
python3 -m pip install wechatpy
python3 -m pip install sqlalchemy==1.2.5
python3 -m pip install kombu==4.1.0
python3 -m pip install celery==4.1.0
第三步,依赖安装好之后,到Odoo安装oejia模块:
最后,配置oejia微信小程序商城模块: