Odoo 使用 ir.sequence 生成序列号

在Odoo里面,默认提供了ir.sequence这样一个模块,他的作用就是一个序号生成器。在这次的项目中刚好用到了,这里就记录一下。

创建序号

打开 data/data.xml 写入如下代码:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
   <data noupdate="True">
      <record id="contract_number" model="ir.sequence">
         <field name="name">预算编号</field>
         <field name="code">budget.number</field>
         <field name="prefix">HT%(year)s%(month)s%(day)s</field>
         <field name="suffix">号</field>
         <field name="padding">1</field>
      </record>
   </data>
</odoo>

参数说明:

  • name - 名字,随便叫什么都行
  • code - 调用生成编码的 Key,需保证唯一性
  • prefix - 前缀,可以是固定的字面量也可以是组合参数
  • padding - 序列递增的位数

调用

data/data.xml加入到__manifest__.py的data列表中。

budget_num = fields.Char(string=u'预算编号', copy=False, readonly=True, default=lambda x: _('New'))

@api.model
def create(self, vals):
	""" 保存方法重写 """
	if not vals.get('name', False) or vals['name'] == _('New'):
		vals['budget_num'] = self.env['ir.sequence'].next_by_code('budget.number')
	return super(Budget, self).create(vals)

Odoo 赋值 One2Many

many2many

  • (0,0,{values})  根据values里面的信息新建一个记录。
  • (1,ID,{values})  更新id=ID的记录(写入values里面的数据)
  • (2,ID)  删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)
  • (3,ID)  切断主从数据的链接关系但是不删除这个数据
  • (4,ID)  为id=ID的数据添加主从链接关系。
  • (5)  删除所有的从数据的链接关系就是向所有的从数据调用(3,ID)
  • (6,0,[IDs])  用IDs里面的记录替换原来的记录(就是先执行(5)再执行循环IDs执行(4,ID))

例子[(6, 0, [8, 5, 6, 4])] 设置 many2many to ids [8, 5, 6, 4]

one2many

  • (0, 0,{ values })  根据values里面的信息新建一个记录。
  • (1,ID,{values})  更新id=ID的记录(对id=ID的执行write 写入values里面的数据)
  • (2,ID)  删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)
new_lines = self.env['test.person']
data = {
    'name' = 'joy',
    'age' = 10
}
new_line = new_lines.new(data)
new_lines += new_line
self.one2many_name += new_lines

Git 管理项目

常用命令

# 查看git配置信息
git config --list

# 查看文件信息
git ls-files       #仅查看所有的文件名
git ls-tree head   #查看版本(分支)中所有的文件
git ls-files -s    #查看暂存区和版本中所有文件的详细信息

# 查看commit日志
git log
git log --oneline
git log --graph

# 同步服务器代码
git pull

# 获取最新版到本地,不会自动merge
git fetch

# 推送到服务器
git push

# 添加文件到暂存区
git add <filePath>
git add .

# 添加commit信息
git commit -m "<message>"

# 合并分支
# 切换到master,将dev分支合并到master分支
git merge dev

# 删除
# -r 递归移除目录
# -n 执行命令时,不会真做操作,只是展示执行后的操作信息
git rm -r -n runtime/*    # 不会删除掉文件
git rm -r runtime/*       # 会删除掉文件
git rm -r --cached runtime/*  # 从暂存区删除,不会删除本地文件

# 放弃本地修改
git checkout -- <filePathName>

# 冲突
# 冲突是需要手动解决的,最好是借助工具解决掉冲突,先add,再commit即可。

# 基础配置
# 设置用户信息
git config --global user.name "Jalena"
git config --global user.email "jalena@bcsytv.com"

# 查看某一项设置
git config <key>

# 格式化与多余的空白字符
git config --global core.autocrlf true

# 回滚版本
# 方式一
git reset --soft 版本号  #从分支回到暂存区
git reset head 文件      #从暂存区回到修改过的内容
git check out  文件      #从修改过的文件到原文件

# 方式二
git reset --mix 版本号   #从分支回到修改过的内容 == git reset 版本号
git check out  文件      #从修改过的文件到原文件

# 方式三
git reset --hard 版本号  #从分支回到原文件

远程仓库相关命令

# 初始化
git init

# 检出代码
git clone https://github.com/odoo/odoo.git
# 查看远程仓库
git remote -v
#添加远程仓库
git remote add [name] [url]
# 删除远程仓库
git remote rm [name]
# 修改远程仓库
git remote set-url --push [name] [newUrl]
# 拉取远程仓库
git pull [remoteName] [localBranchName]
# 推送远程仓库
git push [remoteName] [localBranchName]

分支(branch)操作相关命令

# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 创建本地分支
git branch [name] // 注意新分支创建后不会自动切换为当前分支
# 切换分支
git checkout [name]
# 创建新分支并立即切换到新分支
git checkout -b [name]
# 删除分支
# -d 只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。
# -D 强制删除一个分支
git branch -d [name]  
# 合并分支
# git merge [name] # 将名称为[name]的分支与当前分支合并
# 创建远程分支(本地分支push到远程)
git push origin [name]
# 删除远程分支
git push origin heads/[name]
git push origin [name]

子模块(submodule)相关操作命令

# 添加子模块
git submodule add [url] -b <version> [path]
# 初始化子模块,只在首次检出仓库时运行一次就行
git submodule init
# 更新子模块,每次更新或切换分支后都需要运行一下
git submodule update
# 删除子模块:(分4步走哦)
git rm --cached [path]
# 编辑".gitmodules"文件,将子模块的相关配置节点删除掉
# 编辑".git/config"文件,将子模块的相关配置节点删除掉
# 手动删除子模块残留的目录

[JetBrains] 学生开发者免费申请专业版授权

工欲善其事,必先利其器。无论是学习 Java,PHP,Ruby,Python,JavaScript,Objective-C,.NET 任何一种开发技术,国际知名且年年获奖的 JetBrains 专业开发工具都能有效帮助您。

免费学生授权包含所有 JetBrains Toolbox 下的专业开发工具:IntelliJ IDEA Ultimate,ReSharper Ultimate 和所有集成开发工具。取得方式很简单,学生只要提供校园邮箱,国际学生证(ISIC)或是有效的证明文件来验证学生身份即可。

  1. 申请地址
    https://www.jetbrains.com/shop/eform/students
  2. 验证邮箱地址
  3. 邮箱中确认许可证
  4. 激活码获取
    https://account.jetbrains.com/licenses/assets
  5. 下载激活码
    https://account.jetbrains.com/licenses

如果没有edu信箱,可以在淘宝买一个 传送门

VSCode 代码提示

提示文件搜索

Jquery代码提示

rem 进入项目目录执行
npm init -y
npm install --save @types/jquery

引入方式1. 手动引入提示文件

/// <reference path="./node_modules/@types/jquery/index.d.ts" />
$dp.$D('#date091873-')
$dp.$D('date083588-')

引入方式2. 配置文件引入

{
  "name": "code",
  "version": "1.0.0",
  "description": "",
  "main": "Untitled-1.js",
  "dependencies": {
    "@types/jquery": "^3.2.16"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "types": "./node_modules/@types/jquery/index.d.ts"
}