在前面的文章中,我们学习了模型层.如何创建应用数据结构以及如何使用 ORM API 来存储查看数据.本文中我们将利用前面所学的模型和记录集知识实现应用中常用的业务逻辑模式. 本文的主要内容有: 以文件为中心工作流的阶段(stage) ORM 方法装饰器:@api.multi, @api.one和@api.model onchange方法,与用户即时交互 使用 ORM 内置方法,如create, write 和 unlink Mail 插件提供的消息和活动功能 创建向导来帮助用户执行复杂操作 使用…
在前面的文章中,我们学习了模型层.如何创建应用数据结构以及如何使用 ORM API 来存储查看数据.本文中我们将利用前面所学的模型和记录集知识实现应用中常用的业务逻辑模式. 本文的主要内容有: 以文件为中心工作流的阶段(stage) ORM 方法装饰器:@api.multi, @api.one和@api.model onchange方法,与用户即时交互 使用 ORM 内置方法,如create, write 和 unlink Mail 插件提供的消息和活动功能 创建向导来帮助用户执行复杂操作 使用…
业务逻辑层在Ninesky.Core中实现,主要功能封装一些方法通过调用数据存储层,向界面层提供服务.   目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架构 MVC5 网站开发之六 管理员 1.登录.验证和注销 MVC5 网站开发之六 管理员 2.添加.删除.重置密码.修改密码.列表浏览 MVC5 网站开发之七 用户功能 1…
本文将学习如何为用户创建图形化界面来与图书应用交互.我们将了解不同视图类型和小组件(widgets)之间的差别,以及如何使用它们来提供更优的用户体验. 本文主要内容有: 菜单项 窗口操作(Window Actions) 表单视图结构 字段 按钮和智能按钮 动态视图元素 列表视图 搜索视图 其它视图类型 开发准备 我们将继续使用library_checkout插件模块,它已经有了模型层,现在需要视图层来实现用户界面.本文中的代码基于第八章 Odoo 12开发之业务逻辑 – 业务流程的支持,相关代码…
在本系列文章第三篇Odoo 12 开发之创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件.本文及接下来的一篇我们将深入到组成应用的每一层:模型层.视图层和业务逻辑层. 本文中我们将深入学习模型层,以及学习如何使用模型来设计应用所需的数据结构.我们会探索模型和字段的各项作用,包括定义模型关系.添加计算字段.创建数据约束. 本文的主要内容有: 学习项目 – 优化图书馆应用 创建模型 创建字段 模型间的关系 计算字段 模型约束 了解 Odoo的 base 模型 开发准备 本文…
Odoo 开发通常都需要创建自己的插件模块.本文中我们将通过创建第一个应用来一步步学习如何在 Odoo 中开启和安装这个插件.我们将从基础的开发流学起,即创建和安装新插件,然后在开发迭代中更新代码来进行升级. Odoo 采用类 MVC(Model-View-Controller)的结构,我们将深入到各层来实施一个图书应用.本文主要内容有: 创建一个新的模块,用来实施相关功能 添加应用的特性功能:顶级菜单项和安全组 添加一个一开始会失败但在项目完成时成功运行的自动化测试 实施模型层,定义应用的数据…
在更深入了解 Odoo 开发之前,我们应配置好开发环境并学习相关的基础管理任务.本文中,我们将学习创建 Odoo 应用所需用到的工具和环境配置.这里采用 Ubuntu 系统来作为开发服务器实例的主机,可以是云服务器.本地服务器或者PC 上的虚拟机. 本文主要内容有: 配置主机,可以是 Ubuntu系统或 PC 机上的 Linux 子系统 使用源码安装 Odoo,包括数据库和系统依赖的安装 管理 Odoo 数据库(创建.删除和拷贝) 配置 Odoo 服务器选项 查找并安装社区插件 使用虚拟环境管理…
序言 .NET(C#)的WinForm如何简单易行地进行UI与业务逻辑分层?本系列文章介绍一个WinForm分层框架,该框架针对WinForm中的TextBox,CheckBox,RadioButton三种UI控件进行简单粗暴的UI与业务逻辑分层实现. 背景 软件行业发展至今,分层的思想可谓是深入人心.企业应用架构模式中三层架构的思想早以众人皆知,MVC的框架正在引领着WEB开发的潮流.但在MES系统开发这块,虽然众多厂商均标榜自身产品皆采用分层架构,但细究下也只是框架上做到了分层,在粗粒度上还…
这篇文章其实是大健康行业直销系统的番外篇,主要给大家讲讲如何在领域逻辑中,有效的处理业务逻辑条件判断的最佳实践问题. 大家都知道,聚合根.实体和值对象这些领域对象都自身处理自己的业务逻辑.在业务处理过程中,通常会有一些条件判断,当满足这些条件时,会进行不同的后续处理.在传统的实现中,可以通过If Else条件语句进行判断,但If Else语句在复杂领域中来检查是否满足一些业务条件存在以下的问题: 1.      无法很好的显示表达业务条件本身. 2.      无法对多个条件在不同需要的地方进行…
报表是业务应用非常有价值的功能,内置的 QWeb 引擎是报表的默认引擎.使用 QWeb 模板设计的报表可生成 HTML 文件并被转化成 PDF.也就是说我们可以很便捷地利用已学习的 QWeb 知识,应用到业务报表中.本文中我们将为图书馆应用添加一个报表,复习 QWeb生成报表的关键技巧.包括像汇总一类计算.翻译和纸张样式打印. 本文主要内容有: 安装wkhtmltopdf 创建业务报表 QWeb 报表模板 在报表中展示数据 渲染图片 报表汇总 定义纸质格式 在报表中启用语言翻译 使用自定义 SQ…