分类 odoo 下的文章

原文来自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
好啦,这么好用的功能赶快写到用户操作手册中去吧,告诉客户他可以不用鼠标快速地录入想要的日期啦。

原文链接:https://www.odoo.com/zh_CN/page/flectra-vs-odoo-flectrahq-enterprise

以下摘录原文如下:

Odoo vs Flectra
History and facts behind the copyright infringement suit

Flectra is a fork of Odoo Community, and one of its initial goals was apparently to copy many features from Odoo Enterprise. In the early months of its existence, significant cases of copyright infringements of Odoo Enterprise were detected in the copied features inside Flectra. Its authors have a history of repeatedly copying and obfuscating proprietary code.

- 阅读剩余部分 -

【原创】源码安装多版本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源:设置命令如下:

- 阅读剩余部分 -

用到了一个odoo容器管理模块:
基于源码安装的odoo,
在odoo里管理容器,
容器里跑的各种版本的odoo,
从odoo8\odoo9\odoo10\odoo11\odoo12\odoo13\odoo14\odoo15\odoo16\odoo17\odoo18。
模块名字叫:micro-saas,中文名叫迷你SAAS模块。
最终跑起来的效果如下图:
2024-08-30T16:10:43.png
2024-08-31T12:52:51.png
源码安装odoo,参考大佬写的这篇教程:
Ubuntu通过源码安装Odoo16

https://www.cnblogs.com/zhengdaojie/p/15832534.html

源码安装好odoo以后,
替换ubuntu的安装源,
再基于国内源再安装docker和docker-compose以及git,
最后把docker的源替换国内源,
注意这里国内源大部分已死掉,
目前1pannel源可用(截止时间20240831凌晨0:14),
从这里

https://cloud.tencent.com/developer/article/2445800
(截止20241202下午14:05已经打不开链接了)
源地址直接放出:

https://docker.1panelproxy.com

换源后,重新加载配置以及重启docker生效:

systemctl daemon-reload
systemctl restart docker

拷出来的docker最新国内源请随时留意更新,
源的问题会造成起容器失败!
因为默认会出国拉取postgresql镜像和odoo镜像,
出国要娣子翻强。

最后忘了贴模块地址了,
odoo官方app市场:

https://apps.odoo.com/apps/modules/17.0/micro_saas

里边有个requirements.txt写着

phonenumbers

用这篇里写的安装方法,增加安装进去。

收功!