Odoo12 之主题创建或扩展

初次使用 Odoo 来制作网站,因Odoo自带代码块效果单一,无法满足当前网站展示效果,需要对当前代码块进行添加或扩展。而这个代码块是属于网站中的布局设计这一块,Odoo 将所有的布局以及逻辑行为,都“模块化”了。Odoo 创建布局同Html不一样,是一个完全的视角改变,从视觉上看,创建的布局,可以让用户 “拖拽” 到页面中任意位置并对它进行编辑。Odoo 布局就是一个模块化的布局,目标就是样式化这些元素来达到一个比较完美的效果。

Odoo 页面规范

odoo 始于 XML 规范,所有的代码都必须在 标签内完成


<odoo>
 
    ## YOUR CODE
 
odoo>

创建布局结构,都必须在 标签内完成,如果当前 template 是网页,则必须要给当前 template 添加一个 page="True" 的属性



 
    
    <template name="Services page" id="website.services" page="True">
      

Our Services

  • Cloud Hosting
  • Support
  • Unlimited space
template>

 

注意点

  1. template 标签只是定义了一段 html 代码
  2. template 标签在没有和 odoo 建立任何联系之前,都不会在任何位置显示
  3. 每次修改 XML 文件都会强制重新载入,因为 XML 文件只有安装主题时才会加载
  4. 可以使用 xpath + qweb 来将 template 与 odoo 进行关联

 

创建一个主题模块

创建一个主题或是叫创建一个代码块,以下文件必不可少:

  1. 模块名称,必须以 theme_ 开头
  2. 模块配置信息,__manifest__.py
  3. 模块系统文件,__init__.py 可以为空
  4. 模块的 static(JS / CSS / IMG) 与 views(XML 文件) 目录

 

编辑__manifest__.py,这些值将在 odoo 的后台中对主题进行标识:

{
  'name': 'Tutorial theme',   //主题名称
  'description': 'A description for your theme.',    //主题描述
  'version': '1.0',   //主题版本
  'author': 'Your name',   //主题作者
  'data': [
        //包含 XML 文件列表
  ],
  'category': 'Theme/Creative',    //模块或是主题的分类,(总是为“Theme”)并且跟着下划线和子分类,可以使用一个Odoo应用类别列表中的子分类(https://www.odoo.com/apps/themes)。
  'depends': ['website'],    //指定主题需要依赖的模块,对于网站中的主题,只需要依赖website,如果需要博客和电商功能,则需要这样写:['website','website_blog','sale']
}

 

安装主题模块

依照官方文档,只需要把主题目录放置到Odoo安装的插件目录中即可,Odoo12 的插件目录为 addons。但是在实际操作中存放我们自己的插件目录,是不可以直接将插件放入 addons 中的,原因如下:

我们只是增加存放插件(addons)的路径,并没有替换之前的插件(addons)路径。我们得在原有的存放插件文件夹addons同级目录下新建了另一个存放插件的文件夹myaddons。为什么要新建另一个文件夹myaddons来存放插件呢?因为,之前的文件夹addons下面已经安装了很多系统自带的插件,而我们后续会自主开发部分插件和使用第三方插件,是不想把这些插件与系统自有的插件混淆,引起一些不可预估的问题。

新建好 myaddons 后,需要对Odoo server 12重启,新增插件路径只有重新 odoo 服务器才能生效。重启命令如下:

sudo /etc/init.d/odoo restart

重启之后,新增的存放插件文件夹 myaddons 才会生效!

 

通过自定义的插件文件夹 myaddons。测试安装一个插件叫“web_responsive”它主要实现一个响应式的效果,即可以方便PC、平板、手机等设备上更加便捷的使用Odoo 12,步骤为:

  1. 把插件 web_responsive 放在之前新建好的文件夹myaddons下,并解压!解压后可删除压缩包。
  2. 再登录odoo 12,转到“参数设置”下,激活开发者模式。
  3. 激活开发者模式之后,转到“应用”下,点击“更新本地模块列表”。
  4. 更新完本地模块列表之后,需要去掉“应用”筛选项,不去掉,安装的插件“ web_responsive ”不会显示出来,因为插件太多了。
  5. 安装完成之后,即可使用插件 web_responsive 。

 

创建一个特殊效果的主题模块

 

按照步骤建立主题

  1. 在 views 目录中,创建一个pages.xml 文件并添加默认的Odoo标签。
  2. 中创建一个